我想升级我的应用程序。我在服务器上获得了新版本的 .apk。如果删除旧版本的应用程序,它是手动工作的。在设备上,但如果我不删除旧版本的应用程序。再次不起作用我采取相同的解析错误。
我添加了 AndroidManifest 文件:
<uses-permission android:name="android.permission.INSTALL_PACKAGES"
tools:ignore="ProtectedPermissions" />
我测试了另一个 .apk 并且可以正常工作。
public class VersionUpdateTask extends AsyncTask<String, Float, String> {
@Override
protected void onPostExecute(String result) {
mWakeLock.release();
updateManager.updateBar.stop();
else {
try {
String PATH = Environment.getExternalStorageDirectory() + "/download/";
File file = new File(PATH, updateManager.apkOutPath);
if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.N) {
Uri fileUri = FileProvider.getUriForFile(updateManager.updateContext,updateManager.updateContext.getPackageName() + ".provider", file);
Intent intent = new Intent(Intent.ACTION_VIEW, fileUri);
intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
intent.setDataAndType(fileUri, "application/vnd.android" + ".package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
updateManager.updateContext.startActivity(intent);
} else {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
updateManager.updateContext.startActivity(intent);
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
}