Android 通过openInputStream()读取chrome图像的内容Uri时的权限拒绝
我正在尝试使用隐式意图动作_SEND将图像从chrome浏览器共享到我的应用程序 在共享搜索到的图像时,应用程序接收到具有如下内容URI的意图:content://com.android.chrome.FileProvider/images/screenshot/1457448067808912906311.jpg 使用ContentResolver和openInputStream()读取与内容Uri关联的字节,会导致应用程序崩溃,引发安全异常:权限拒绝 以下是堆栈跟踪:Android 通过openInputStream()读取chrome图像的内容Uri时的权限拒绝,android,google-chrome,android-intent,inputstream,android-contentresolver,Android,Google Chrome,Android Intent,Inputstream,Android Contentresolver,我正在尝试使用隐式意图动作_SEND将图像从chrome浏览器共享到我的应用程序 在共享搜索到的图像时,应用程序接收到具有如下内容URI的意图:content://com.android.chrome.FileProvider/images/screenshot/1457448067808912906311.jpg 使用ContentResolver和openInputStream()读取与内容Uri关联的字节,会导致应用程序崩溃,引发安全异常:权限拒绝 以下是堆栈跟踪: Caused by j
Caused by java.lang.SecurityException: Permission Denial: opening provider org.chromium.chrome.browser.util.CompatibilityFileProvider from ProcessRecord{e2de807 31401:com.theteamie.android.app/u0a784} (pid=31401, uid=10784) that is not exported from uid 10060
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3576)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:4799)
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2018)
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1466)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1087)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:942)
at android.content.ContentResolver.openInputStream(ContentResolver.java:662)
at com.theteamie.android.app.activity.PostShareActivity.copyToLocalFile(PostShareActivity.java:141)
at com.theteamie.android.app.activity.PostShareActivity.processChosenFile(PostShareActivity.java:103)
at com.theteamie.android.app.activity.PostShareActivity.onCreate(PostShareActivity.java:72)
at android.app.Activity.performCreate(Activity.java:6259)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
在我编写此功能的几天前,它就开始工作了。我从我的this的答案中得到了帮助。现在有人可以建议是什么导致了此问题吗?请确保您正在尝试从Android清单中为其设置操作的同一活动中获取图像。上述问题最可能的原因是“它过去几天还在工作”——只是为了确认一下,当您收到它时,您正在使用
Uri
,对吗?如果您已将此Uri
保存在某个位置(例如,数据库)并稍后尝试使用它,则此行为是预期的。是的,我正在使用我从意图中收到的Uri。不将其保存在任何位置并稍后使用。即兴使用,感觉就像Chrome中的一个bug。哦,好的。希望尽快修复:(