我想使用选择器使用第三方应用程序打开保存在应用程序存储中的文档,如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,它会显示文档类型不受支持。
我使用的代码是
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);在清单中我已经提到过
<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文档需要存储在应用程序存储空间中。
发布于 2014-07-07 18:46:40
而不是这行:
intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);只要把这行字放进去:
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION
| Intent.FLAG_GRANT_WRITE_URI_PERMISSION);我认为您的提供者也应该将android:exported属性设置为true (以便被其他应用程序使用)。
https://stackoverflow.com/questions/24604346
复制相似问题