4

我知道我可以通过以下传递APK文件URI的代码以编程方式安装 Android 应用程序。我可以在不传递 APK 文件 URI 的情况下安装应用程序吗?例如,获取 APK 文件的字节数组并安装它?

File appFile = new File("application.apk");
Intent installIntent = new Intent(Intent.ACTION_VIEW);
installIntent.setDataAndType(Uri.fromFile(appFile),"application/vnd.android.package-archive");
startActivity(installIntent);
4

1 回答 1

2

当您以这种方式安装应用程序时,您实际上并没有直接安装该应用程序。发生的情况是您启动安装程序并将安装程序的引用传递给您要安装的 APK。安装程序不是应用程序代码的一部分,并且无法访问应用程序进程中的内存。

如果您有一个包含 APK 的字节数组,那么执行此操作的唯一方法是将字节数组写入文件,然后启动安装程序并向其传递一个指向您编写的文件的 URI。安装完成后,您可以删除该文件(以免在用户手机上留下随机垃圾)。

于 2012-10-26T14:06:34.693 回答