关于Intent.FLAG_GRANT_READ_URI_PERMISSION生命周期

时间:2017-12-29 09:55:49

标签: android android-intent

  1. https://developer.android.com/reference/android/support/v4/content/FileProvider.html正如文件所述 在接收活动的堆栈处于活动状态时,Intent中授予的权限仍然有效。堆栈完成后,将自动删除权限。授予客户端应用中一个活动的权限会自动扩展到该应用的其他组件。

  2. 为了测试该标志,在我们的应用程序中,我们获得了一个活动(活动A)以从谷歌照片接收共享图像,我们得到图像uri(内容://com.google.android.apps .photos.contentprovider / -1 / 1 / content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F402643 / REQUIRE_ORIGINAL / NONE / 135827760),以及活动A将uri发送到另一个活动(活动B), 活动A立即完成,然后活动B postDelayed 5秒解析uri,解决方法如下

    ParcelFileDescriptor parcelFileDescriptor = getContentResolver().openFileDescriptor(imageUri, "r");
    
  3. 正如文件所说,活动B也应该有权解决这个问题。但是,在活动B中,我得到了一个例外:

    java.lang.SecurityException:Permission Denial:从ProcessRecord打开提供程序com.google.android.apps.photos.contentprovider.impl.MediaContentProvider {2d1e8e3 16688:com.linghan.devdemo / u0a513}(pid = 16688,uid = 10513)未从UID 10079

  4. 导出

    但是活动A中的相同代码很好。

    如何解释活动B中的权限缺失?

0 个答案:

没有答案