Android 7.0适配 打开文件和分享文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011216273/article/details/72822132

嗯,我就闲来无事想说一句,我是可爱的分割线(●’◡’●)。

7.0的禁止不安全路径被外部访问。其中典型例子就是拍照。所以我以为分享图片也是需要适配,实验得知并不是。分享走的是系统的,所以不会有错误,如果你是打开文件的话,那么久需要适配content URL了。

可是6.xx之后要动态申请权限,所以如果是对文件会发生读写操作的话需要把,申请读写权限意图说明。也就是 addFlags。

1.Intent.FLAG_GRANT_WRITE_URI_PERMISSION content URL 写入权限
2.Intent.FLAG_GRANT_READ_URI_PERMISSION content URL 读取权限

一:打开pdf文件的代码
因为要适配7.0以上,所以介绍下如何谁配content URL。
这里写图片描述

这里写图片描述

以下是代码使用,

                Intent intent = new Intent("android.intent.action.VIEW");
                intent.addCategory("android.intent.category.DEFAULT");
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                Uri uri;
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                //data是file类型,忘了复制过来
                    uri = FileProvider.getUriForFile(mActivity, "com.cango.palmcartreasure.fileprovider", data);
                } else {
                    uri=Uri.fromFile(data);
                }
                //pdf文件要被读取所以加入读取权限
                intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                intent.setDataAndType(uri, "application/pdf");
                try {
                    startActivity(intent);
                } catch (Exception e) {
                    e.printStackTrace();
                }

在start的时候,最好加入try——catch

二:分享pdf文件
不截图了,使用方法和以前没区别,走系统的所以不会发生异常处理。具体原因自己百度,反正我不知道,知道的告诉我下,告诉我我也不感激你。

                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_SEND);
                intent.addCategory("android.intent.category.DEFAULT");
                Uri pdfUri;
                pdfUri = Uri.fromFile(data);
                intent.putExtra(Intent.EXTRA_STREAM, pdfUri);
                intent.setType("application/pdf");

                try {
                    mContext.startActivity(Intent.createChooser(intent, data.getName()));
                } catch (Exception e) {
                    e.printStackTrace();
                }

讲完了,(●’◡’●)。

猜你喜欢

转载自blog.csdn.net/u011216273/article/details/72822132