美文网首页
Android N以上外部打开自定义URI文件的注意事项

Android N以上外部打开自定义URI文件的注意事项

作者: nullptrjzz | 来源:发表于2018-10-17 23:21 被阅读0次

    背景:最近在做一个下载模块,要求下载完成后可以点击打开文件。涉及到安卓N中需要FileProvider的地方。但苦于一直没法用第三方应用打开下载的文件(比如用WPS打开xlsx这样子),但APK的安装没啥问题,上网苦苦搜索了一番找到了解决方案,特地码住。

    参考文章:https://mp.weixin.qq.com/s/0BFFoyJdrzkfk6k66tHtyA?

    网上大多数的解决方案都差不多,仅仅介绍了使用FileProvider的方法以及对文件mimeType的判断,但是都没有涉及到给第三方应用授权的问题。

    而第三方应用没有获得相应的权限就无法打开这个文件。

    代码实现:

    int flag = Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION;
    List<ResolveInfo> resolveInfoList = MyApplication.getContext().getPackageManager()
                    .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    for (ResolveInfo info : resolveInfoList) {
        MyApplication.getContext().grantUriPermission(info.activityInfo.packageName,
                        uri, flag);
    }
    

    之后再使用该Intent启动activity即可。

    相关文章

      网友评论

          本文标题:Android N以上外部打开自定义URI文件的注意事项

          本文链接:https://www.haomeiwen.com/subject/nfvdzftx.html