Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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
Java 如何将临时授予的ContentProvider权限传递给服务?_Java_Android_Android Contentprovider - Fatal编程技术网

Java 如何将临时授予的ContentProvider权限传递给服务?

Java 如何将临时授予的ContentProvider权限传递给服务?,java,android,android-contentprovider,Java,Android,Android Contentprovider,我写了一个活动,需要能够接收来自第三方应用程序共享的文件。活动本身有一个服务,需要能够读取这些文件。我已经为活动定义了一个意图过滤器。我从第三方应用程序的第一个意图中读取URI,并通过我的“工作内容”将URI转发给我的服务 问题是,我在尝试读取服务中的文件时遇到SecurityException: java.lang.SecurityException:权限拒绝:读取com.whatsapp.MediaProvider uricontent://com.whatsapp.provider.med

我写了一个活动,需要能够接收来自第三方应用程序共享的文件。活动本身有一个服务,需要能够读取这些文件。我已经为活动定义了一个意图过滤器。我从第三方应用程序的第一个意图中读取URI,并通过我的“工作内容”将URI转发给我的服务

问题是,我在尝试读取服务中的文件时遇到SecurityException:

java.lang.SecurityException:权限拒绝:读取com.whatsapp.MediaProvider uricontent://com.whatsapp.provider.media/item/397213 从pid=16463开始,uid=10337要求导出提供程序,或grantUriPermission()

在“我的活动”中读取文件效果很好。因此,我猜第三方内容提供商将临时读取权限授予我的活动,但此权限对我的服务无效,因为服务是不同的应用程序组件

有没有办法将第三方应用程序为我的活动授予的临时权限传递给我的服务


我已经在为我的服务使用这些标志,但这不起作用
workcontent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION)

这是在我想要的用例中发生的事情的完整图表:

“我已经在为我的服务使用这些标志,但这不起作用”--我建议您编辑问题并提供完整的,因为这肯定有效。“我已经在为我的服务使用这些标志,但这不起作用”--我建议您编辑问题并提供完整的,因为这肯定有效。