首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FLAG_GRANT_WRITE_URI_PERMISSION intent ANDROID发布开场白

使用FLAG_GRANT_WRITE_URI_PERMISSION intent ANDROID发布开场白
EN

Stack Overflow用户
提问于 2014-07-07 14:37:33
回答 1查看 1.6K关注 0票数 0

我想使用选择器使用第三方应用程序打开保存在应用程序存储中的文档,如polaris office、quickoffice、kingsoft docs等。我还想授予编辑文档的权限。

如果我使用FLAG_GRANT_READ_URI_PERMISSION打开文档,文档可以正常打开,但是如果我使用FLAG_GRANT_WRITE_URI_PERMISSION安装了外部应用程序pushedup,但是没有显示polaris office的文档selected.Incase,那么使用FLAG_GRANT_READ_URI_PERMISSION打开文档很好,但是如果我使用FLAG_GRANT_WRITE_URI_PERMISSION,它会显示文档类型不受支持。

我使用的代码是

代码语言:javascript
复制
    File file = new File(
            getFilePath(data.getUniqueId(), data.getFileName()));
    Uri uri = FileProvider.getUriForFile(context, "com.example.com",
            file);

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_EDIT);
    intent.setDataAndType(uri, "application/pdf");
    intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); 
    Intent chooserIntent=Intent.createChooser(intent, uri.toString());
    context.startActivity(chooserIntent);

在清单中我已经提到过

代码语言:javascript
复制
 <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="com.example.com"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/my_paths" />
    </provider>

请告诉我我哪里错了。

我想提供临时许可给第三方应用程序打开和编辑文档selected.The文档需要存储在应用程序存储空间中。

EN

回答 1

Stack Overflow用户

发布于 2014-07-07 18:46:40

而不是这行:

代码语言:javascript
复制
    intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

只要把这行字放进去:

代码语言:javascript
复制
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION 
            | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

我认为您的提供者也应该将android:exported属性设置为true (以便被其他应用程序使用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24604346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档