转换了uri之后,还须要授权:
- /**
- * 对第三方应用付与对uri读写的权限
- *
- * @param context
- * @param intent
- * @param saveUri 适配后的uri
- */
- public static void grantUriPermission(Context context, Intent intent, Uri saveUri) {
- if (!isNeedAdapt()) {
- return;
- }
- if (context == null || intent == null || saveUri == null) {
- return;
- }
- //收集路径的特别处理,不须要权限
- if (saveUri.getScheme() != null && saveUri.getScheme().startsWith("http")) {
- //不须要授权
- return;
- }
- //1、授权(体系相册、相机、裁剪时须要) -- 这种写法待分析
- List<ResolveInfo> resInfoList = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
- for (ResolveInfo resolveInfo : resInfoList) {
- String packageName = resolveInfo.activityInfo.packageName;
- if (TextUtils.isEmpty(packageName)) {
- continue;
- }
- context.grantUriPermission(packageName, saveUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
- }
- //2、授权(安装apk时须要)
- intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
- }
琅绫擎有两部分授权方法,经由多轮测试,发明须要同时应用比较好。
第一种方法,for轮回,是因为有时刻你并不肯定须要分享的应用的包名是哪一个,所以找到所有有可能的第三方应用,全部授权了。
最后,须要留意的是:
1、留意7.0的版本断定。
2、切记,7.0的权限有可能须要对sd卡读写,须要6.0的读写sd卡权限。当你测试7.0权限不成功时,推敲下6.0的权限是否到位了。
其他的没的说了。就这些。
【编辑推荐】
- Android收集安然性设备
- 2017 Android GitHub常用开源框架汇总
- Android Coding利器之控制小技能,助你Coding更上一层楼~
- Android线程间通信之handler
- 一种粗暴快速的Android全屏幕适配筹划
推荐阅读
比来评论辩论云原生应用越来越多,其是指原生为在云平台上安排运行而设计开辟的应用。公平的说,大年夜多半传统的应用,不做任何修改,都是可以在云平台运行起来的,只要云平台支撑这个传>>>详细阅读
本文标题:Android 7.0动态权限大总结
地址:http://www.17bianji.com/lsqh/36701.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示