Content Provider的临时权限访问(FLAG_GRANT_READ_URI_PERMISSION)
然后,App2为CP加上自定义权限后,App1只要有此权限也能访问.
<provider android:authorities="com.ck.contentprovider.MyContentProvider"
android:name="com.ck.contentprovider.MyContentProvider"
android:readPermission="android.permission.permRead"
android:writePermission="android.permission.permWrite"
android:grantUriPermissions="true">
</provider>
但intent中有个flag是FLAG_GRANT_READ_URI_PERMISSION, 据官方介绍可以把URI的临时访问权限传给receiver.所以我去掉App1中请求的权限android.permission.permRead,而让App2发个intent给App1,包括URI和此flag为“true”.
Intent sendIntent = new Intent();
sendIntent.setAction("android.intent.action.VIEW");
sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
sendIntent.putExtra("name", uri2.toString());
sendIntent.setType("text/plain");
但结果还是缺少权限,不能访问。(不论是explicit intent还是implicit intent)
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.web/com.android.web.Provid}: java.lang.SecurityException: Permission Denial: opening provider com.ck.contentprovider.MyContentProvider from ProcessRecord{426c6ea8 17032:com.android.web/u0a95} (pid=17032, uid=10095) requires android.permission.permRead or android.permission.permWrite
请哪位做过的大牛指点一下,万分感激!
相关推荐
解决Android7.0更新后无法安装的问题
最近在我们的应用中加入更新功能,按照往常一样加入代码 if (!apkfile.exists()) { Toast.makeText(mContext, 下载的安装包不存在, Toast.LENGTH_SHORT).show(); return; } Intent install = new Intent(Intent.ACTION_VIEW); install.setDataAndType(Uri.fromFile(apkfile), application/vnd.android.package-archive); in
Resolving Permission Denial: A Deep Dive into FileProvider and ProcessRecord Conflicts in Android
本文深入探讨了Android开发中常见的Permission Denial错误,特别是FileProvider与ProcessRecord冲突问题。通过分析错误本质、FileProvider工作原理及配置要点,提供了解决ProcessRecord冲突的实战方案和高级权限处理技巧,帮助开发者有效解决跨进程文件共享的权限问题。
FileProvider
FileProvider的一个练习Demo
Android 7.0中拍照和图片裁剪适配的问题详解
主要介绍了Android 7.0中拍照和图片裁剪适配的相关问题,文中通过示例代码介绍的很详细,对大家具有一定的参考价值,有需要的朋友们下面来一起学习学习吧。
Android 7.0 应用间共享文件FileProvider代码
Android 7.0 应用间共享文件FileProvider代码;Android 7.0 应用间共享文件FileProvider代码


