【发布时间】:2014-09-23 16:13:10
【问题描述】:
简而言之,当我从意图中选择徽标图像并存储 URI 时,我可以显示/加载图像。即使我退出应用程序并重新启动它,这也有效。 但是当我重新启动平板电脑时,我遇到了权限问题。
长版:
用户可以选择图片
if (Build.VERSION.SDK_INT < 19){
intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
} else {
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
}
然后,我将内容提供程序 URI 存储到我的应用程序的数据库中,如下所示:
content://com.android.providers.media.documents/document/image%3A53
图像被加载到 imageView
myLogo.setImageURI(Uri.parse(f.getLogo_uri()));
当我关闭应用程序并重新启动时,会加载徽标 - 一切正常。 但是当我重新启动平板电脑时,我收到了这条消息
ImageView﹕ Unable to open content: content://com.android.providers.media.documents/document/image%3A53
java.lang.SecurityException: Permission Denial: opening provider
com.android.providers.media.MediaDocumentsProvider from ProcessRecord
{x y:clazz.stuff} (pid=blah, uid=blah) requires android.permission.MANAGE_DOCUMENTS
or android.permission.MANAGE_DOCUMENTS
但我的 AndroidManifest.xml 正在授予该权限
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
感谢任何帮助,谢谢!
附言我在 android kitkat 4.4.4
【问题讨论】:
标签: android permissions uri