Android 打开提供程序时出现SecurityException

Android 打开提供程序时出现SecurityException,android,android-contentprovider,Android,Android Contentprovider,基本上,我正在尝试导入通过Google text messenger共享的联系人VCard。从RequestPermissions活动“B”(B是一个Util类)将从活动a调用。在B启动之前,我将完成a并将a的意图传递给B。在B中接受/拒绝权限后,我正在重新启动活动A。问题是,我作为 权限拒绝:从ProcessRecord{1dd630a 12643:com.example.sample/u0a127}(pid=12643,uid=10127)打开未从uid 10077导出的提供程序com.go

基本上,我正在尝试导入通过Google text messenger共享的联系人VCard。从RequestPermissions活动“B”(B是一个Util类)将从活动a调用。在B启动之前,我将完成a并将a的意图传递给B。在B中接受/拒绝权限后,我正在重新启动活动A。问题是,我作为

权限拒绝:从ProcessRecord{1dd630a 12643:com.example.sample/u0a127}(pid=12643,uid=10127)打开未从uid 10077导出的提供程序com.google.android.apps.messaging.shared.datamodel.MediaScratchFileProvider


我尝试了几个答案,但我无法解决这个问题。根据文档,Uri权限持续到其活动实例完成。我认为完成活动A会导致权限拒绝,即使权限已被接受,但要求是必须完成并重新启动活动A。请提供解决问题的建议。

您必须在
Intent
对象中传递
Uri
,并包含
addFlags(Intent.FLAG\u GRANT\u READ\u Uri\u PERMISSION)
,才能传递读取访问权限。我尝试了,但没有成功。场景是从A转到B,完成A并在B中执行某些操作,然后使用传递给B的意图重新启动A。我向A请求了READ_联系人和READ_存储权限。因此,我完成了A并尝试提取Uri内容。我遇到了异常。从B重新启动A时,我给出了setData(uri),addFlags()是u指定的,但它不起作用。将另一个异常获取为“java.lang.SecurityException:Uid 10096”没有访问uri 0的权限@content://com.google. android.apps.messaging.shared.datamodel.MediaScratchFileProvider/4913931653050365013”。请帮忙。