描述
应用内更新,下载apk调用系统api进行安装,在android8.0+手机上无法安装,在android8.0以下可以安装成功,看了看google for android 官网得知android8.0权限控制的更严格,安装应用需要应用本身具有“安装未知来源”权限。
文章已迁移至,详细可已进入查看:UBGLOG
解决方案:
一,如果构建 compileSdkVersion<27
先判断应用是否具有“安装未知应用”权限,没有则引导开启,有则调起安装View
其次安装是需要判断大于ADK.API>=24,条件成立则apk文件uri需要从FileProvider中获取,否则安装最简单方式调起安装。
二,compileSdkVersion>=27
如果构建SDK版本在27版本及以上则不需要判断是否有“安装未知应用”权限,直接调起安装应用即可,系统会自动提示。
例
private void install(File file){
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(intent);
}