1、需求是通过指定地址下载apk,在本地通知进度条展示过程,完成后到本地安装
2、使用包xutils-3.4.0-sources.jar(设置完全没有问题)
3、设置目录权限(其他权限都具备)
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="ruihao.downfile.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
file_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths>
<files-path path="down" name="files_root" />
<files-path path="." name="files_root_down" />
<external-path path="down" name="sd_root" />
<external-path path="." name="external_storage_root" />
</paths>
4、写了一个服务,调用并下载,问题是现在包没有问题,路径没有问题,高版本低版本的系统也控制了,权限没有问题,通知也可以下载,
日志显示文件完全下载完,并且文件路径都找到
完成后启动安装的代码:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {//高版本的android系统
Log.i("zh","----高版本");
Uri contentUri = FileProvider.getUriForFile(mContext, "ruihao.downfile.fileprovider", result);
intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
startActivity(intent);
}else{
//低版本的android系统
Log.i("zh","----低版本");
intent.setDataAndType(Uri.fromFile(result), "application/vnd.android.package-archive");
startActivity(intent);
}
stopSelf();
错误结果: