Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SecurityException:权限拒绝:从ProcessRecord打开提供程序org.chromium.chrome.browser.util.ChromeFileProvider_Android_Android Fileprovider - Fatal编程技术网

Android SecurityException:权限拒绝:从ProcessRecord打开提供程序org.chromium.chrome.browser.util.ChromeFileProvider

Android SecurityException:权限拒绝:从ProcessRecord打开提供程序org.chromium.chrome.browser.util.ChromeFileProvider,android,android-fileprovider,Android,Android Fileprovider,我正在构建一个选择器应用程序,它取代了原生的Android共享对话框。除了我试图通过longpress image>share image从Chrome共享图像外,它工作正常 如果我尝试这样做: Focus Gallery(由Franco制作)>共享(我的应用)>谷歌+>没问题。 Chrome>共享(我的应用)>崩溃 当我尝试访问作为额外_流传递到我的应用程序的content://uri时,我收到一个错误: java.lang.SecurityException:权限拒绝:打开提供程序 org.

我正在构建一个选择器应用程序,它取代了原生的Android共享对话框。除了我试图通过longpress image>share image从Chrome共享图像外,它工作正常

如果我尝试这样做: Focus Gallery(由Franco制作)>共享(我的应用)>谷歌+>没问题。 Chrome>共享(我的应用)>崩溃

当我尝试访问作为额外_流传递到我的应用程序的content://uri时,我收到一个错误:

java.lang.SecurityException:权限拒绝:打开提供程序 org.chromium.chrome.browser.util.ChromeFileProvider来自 ProcessRecord{9a9ad72 13494:com.rejh.sharedr/u0a226}(pid=13494, uid=10226),而不是从uid 10101导出

内容uri如下所示:

content://com.android.chrome.FileProvider/images/screenshot/15307085865714015389178311011200.jpg

以下是我的工作(简化):

我在最后一行(contentResolver.query())中得到了错误。奇怪的是,getType()确实有效

活动的舱单声明:

<activity
    android:name=".ActShareReplace"
    android:label="Sharedr"
    android:theme="@style/AppTheme.TransparentActivity"
    >
    <intent-filter>
        <action android:name="android.intent.action.CHOOSER" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

就我所知,我应该仍然可以访问URI,因为我尝试从接收到意图的同一个活动访问它


顺便说一句,Chrome是迄今为止我唯一遇到问题的应用程序。一位用户报告说共享Whatsapp中的图像会导致类似的错误。

顺便说一句,我正在尝试读取图像以便缓存它,然后将其转发到下一个应用程序(Sharedr是共享对话框的替代品,因此应该只转发意图)。我确实尝试过一开始只是转发意图,但是URI权限被破坏(因为拥有该权限的组件已不存在)。“我正在尝试读取图像以便缓存它”--您不需要
query()
。我同意你的症状很奇怪,但是在
额外流
场景中没有要求
Uri
支持
query()
(例如,对于
OpenableColumns
)。@REJ尝试添加这个标志,
payloadIntent.addFlags(Intent.flag\u GRANT\u READ\u Uri\u PERMISSION);//接收应用程序读取此文件的临时权限
@commonware:我想使用图像名称来缓存文件。如果我尝试openInputStream,我也会遇到同样的错误(但它没有到达那一行,因为它在查询()时崩溃了)@KhaledLela不起作用。这难道不需要清单中的android:grantUriPermission=true?
<activity
    android:name=".ActShareReplace"
    android:label="Sharedr"
    android:theme="@style/AppTheme.TransparentActivity"
    >
    <intent-filter>
        <action android:name="android.intent.action.CHOOSER" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>