准备:
Android7.0Apk下载自动升级首先要确定设备进行root了,获取了读写权限,自动获取还有
<uses-permission android:name="android.permission.INSTALL_PACKAGES" tools:ignore="ProtectedPermissions" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
启动的MainActivity中加
<category android:name="android.intent.category.DEFAULT" />
使用: private void DownLoadApk2(String url){ final String apkPath = CommonUtils.getAppPath(context);//apk下载存放路径,这里根据需要可以自己定 final File saveFile = new File(apkPath); HttpRequest.download(url, saveFile, new FileDownloadCallback() { //开始下载 @Override public void onStart() { super.onStart(); Log.e(TAG,"START"); } //下载进度 @Override public void onProgress(int progress, long networkSpeed) { super.onProgress(progress, networkSpeed); Log.e(TAG,"PROFRESS:"+progress); if (progressDialog != null && progressDialog.isShowing()) {//一开始初始化一个progressDialog 用来展示下载进度 progressDialog.setProgress(progress); } } //下载失败 @Override public void onFailure() { super.onFailure(); Log.e(TAG,"下载失败,请检查网络重新下载!"); if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } } //下载完成(下载成功) @Override public void onDone() { super.onDone(); Log.e(TAG,"下载成功"); if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } String path = saveFile.getAbsolutePath(); ShellUtils.execCommand("pm install -r " + path, true);//csdn好多文档对root后的自动升级指令都有介绍,这里就不介绍了 } }); }