Android以编程方式更新apk

时间:2020-02-01 02:57:34

标签: java android

我的手机上有一个应用程序。我试图调用Intent并安装新版本的apk。我遇到这样的错误:“解析程序包时出现问题”。如果我从手机中删除了apk并手动安装了apk,则可以正常工作。有什么问题吗?

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = FileProvider.getUriForFile(getApplicationContext(), BuildConfig.APPLICATION_ID + ".provider", new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "ingfilm.apk"));
intent.setDataAndType(uri, "application/vnd.android.package-archive");
startActivity(intent);

screenshot

1 个答案:

答案 0 :(得分:0)

这对我来说是这样的:

intent.setDataAndType(
    Uri.parse("file://" + context.getFilesDir().getAbsolutePath() + "/" + apk_file),
    "application/vnd.android.package-archive");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

关键区别可能是.getAbsolutePath()部分。