Android-以编程方式下载另一个应用程序

Android-以编程方式下载另一个应用程序,android,google-play,Android,Google Play,可以通过编程方式下载应用程序吗?我并不是要为某个应用程序启动Google Play。假设我有3个应用程序,都是相关的,但功能不同。是否有可能创建一个第四个应用程序,当您下载时,它也会下载其他3个应用程序,并作为它们的中心?如果是这样,有人能给我指出正确的方向吗?你不能自动安装应用程序,这对用户来说是相当危险的 您可以下载大量新的APK,但用户必须通过打开.apk自行安装 不过,您也可以在内部创建一个大应用程序,但可以将其显示为多个小应用程序,因为您可以将多个活动设置为启动器活动。也许这是你的选择

可以通过编程方式下载应用程序吗?我并不是要为某个应用程序启动Google Play。假设我有3个应用程序,都是相关的,但功能不同。是否有可能创建一个第四个应用程序,当您下载时,它也会下载其他3个应用程序,并作为它们的中心?如果是这样,有人能给我指出正确的方向吗?

你不能自动安装应用程序,这对用户来说是相当危险的

您可以下载大量新的APK,但用户必须通过打开.apk自行安装


不过,您也可以在内部创建一个大应用程序,但可以将其显示为多个小应用程序,因为您可以将多个活动设置为启动器活动。也许这是你的选择

还有一个选择。也许这符合要求?

是的。我前几天刚做的。您的应用将需要一些权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.DELETE_PACKAGES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

如果您正在安装的APK覆盖了用于启动Package Manager的应用程序,则FLAG_ACTIVITY_NEW_任务可防止某些手机崩溃。

您也可以通过以下方式执行此操作:


通过web服务从服务器下载APK文件,下载后使用install_PACKAGES权限安装这些APK文件。

您这样做是为了从Google Play以外的其他地方下载APK,对吗?在启动应用程序管理器时,它只是一个APK。不管你从哪里得到它,不管它是否签名,等等。它只是SD卡上的一个文件,应用程序管理员碰巧知道如何处理它。你可以用它从市场或其他地方下载,这没什么区别。
Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setDataAndType(Uri.fromFile(new File("/sdcard/whereever-you-saved-this.apk")), "application/vnd.android.package-archive");
    startActivityForResult(intent, 0);