原来适配的写法,和常见的博客适配: if(Build.VERSION.SDK_INT>=24) {//判读版本是否在7.0以上 Uri apkUri = FileProvider.getUriForFile(SplashActivity.this, "com.dafangya.app.pro.fileprovider", file); Intent install = new Intent(Intent.ACTION_VIEW); install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); install.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//添加这一句表示对目标应用临时授权该Uri所代表的文件读的权限 install.setDataAndType(apkUri, "application/vnd.android.package-archive"); startActivity(install); }else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://"+filePath), "application/vnd.android.package-archive"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); dialog_progress.dismiss(); } 现在的适配方法: if(Build.VERSION.SDK_INT>=24) {//判读版本是否在7.0以上 Uri apkUri = FileProvider.getUriForFile(SplashActivity.this, "com.dafangya.app.pro.fileprovider", file); Intent install = new Intent(Intent.ACTION_VIEW); install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); install.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//添加这一句表示对目标应用临时授权该Uri所代表的文件读的权限 install.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);//多添加这一句表示对目标应用临时授权该Uri所代表的文件写的权限 install.setDataAndType(apkUri, "application/vnd.android.package-archive"); startActivity(install); }else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://"+filePath), "application/vnd.android.package-archive"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); dialog_progress.dismiss(); } 之前只要一个读取权限就可以了,最近发现突然用不行了,还需要加多一个写的权限
android 自动更新 7.0适配过突然又安装失败了
最新推荐文章于 2018-11-14 15:18:02 发布