- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简而言之,当我从 Intent 中选择 Logo 图像并存储 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()));
当我关闭应用程序并再次启动时, Logo 已加载 - 一切正常。但是当我重启平板电脑时,我收到这条消息
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
最佳答案
首先,ContentProvider
的Uri
不需要持久。它们供立即使用,不一定在未来的任意时间起作用。
其次, future 您无需有权使用有效的Uri
,尤其是在 Android 4.4 上的存储访问框架(您的ACTION_OPEN_DOCUMENT
小路)。提供商可能会为您提供更持久的权限,但您必须为此调用 takePersistableUriPermission()
。请参阅 the Storage Access Framework documentation 的“持久权限”部分了解更多。
您的具体错误感觉就像上面概述的第二个问题。
but my AndroidManifest.xml is granting that permission
您不能拥有MANAGE_DOCUMENTS
权限,除非您使用固件的签名 key 进行签名,因为这是一个签名
权限。
关于重启后 Android 内容提供商 URI 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999886/
我在前几天的测验中遇到了以下问题。 Consider the code fragment (assumed to be in a program in which all variables are
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
我刚开始接触 Objective-C,一般来说是 C,所以我想这也是一个 C 问题。它更像是一个为什么的问题,而不是一个如何做的问题问题。 我注意到,在除以两个整数时,小数部分向下舍入为 0,即使结果
我是一名优秀的程序员,十分优秀!