Bea*_*ear 11 android android-contentprovider android-permissions
随着FLAG_GRANT_READ_URI_PERMISSION在意图传递给startActivity,我们可以授予Uri如果URI使用设置权限setData.但如果Uri在投入EXTRA_STREAM,Uri则不会在jeallybean之前授予.
我知道我们可以使用grantUriPermission后跟a revokeUriPermission来取消授予的权限.但似乎没有好的地方可以运行revokeUriPermission.
有没有更好的解决方案?或任何建议revokeUriPermission?提前致谢.
我读了一些相关内容。首先,EXTRA_STREAM不使用FLAG_GRANT_READ_URI_PERMISSION. 它从 JellyBean 开始工作只是因为在幕后,调用startActivity()副本EXTRA_STREAM到ClipData,这是为 Intent 设置的并使用FLAG_GRANT_READ_URI_PERMISSION。
关于您的问题应该在哪里调用 revokeUriPermission() 。
我建议使用:
private static final int REQUEST_CODE = 1;
startActivityForResult(intent, REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
代替
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
然后重写以下方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == REQUEST_CODE) {
// Call revokeUriPermission here
}
}
Run Code Online (Sandbox Code Playgroud)
当启动的 Activity 退出时,将调用上述方法。在这里查看文档
| 归档时间: |
|
| 查看次数: |
2210 次 |
| 最近记录: |