0

我想升级我的应用程序。我在服务器上获得了新版本的 .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();
        }

    }



}

}
4

0 回答 0