版权声明:本文为博主原创文章,未经博主允许不得转载。 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();
}
讲完了,(●’◡’●)。