看了Android7.0FileProvider后,自己实现去app更新功能时遇到了问题
1.首先已经授予了读写权限
2.由于是在服务里面所以加了
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
在android6.0可以运行安装,android7.0就会报Permission Denial
修改代码如下ok了
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri;
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
uri = Uri.fromFile(new File(pathName));
intent.setFlags(FLAG_ACTIVITY_NEW_TASK);
} else {
//7.0 调用系统相机拍照不再允许使用Uri方式,应该替换为FileProvider
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
uri = FileProvider.getUriForFile(context,"com.test.demo.provider",new File(pathName));
}
//表明不是未知来源
intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
intent.setDataAndType(uri, "application/vnd.android.package-archive");
startActivity(intent);