我知道我可以通过以下代码以编程方式安装Android应用程序,该代码传递URI文件的APK。我可以在不传递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);
答案 0 :(得分:2)
以这种方式安装应用程序时,实际上并不是直接安装应用程序。会发生什么情况是您启动安装程序并向安装程序传递对您要安装的APK的引用。安装程序不是应用程序代码的一部分,并且无法访问应用程序进程中的内存。
执行此操作的唯一方法是,如果您有一个包含APK的字节数组,则将字节数组写入文件然后启动安装程序并向其传递一个URI,该URI指向您编写的文件。安装完成后,您可以删除该文件(以免在用户的手机上留下随机垃圾)。