如何推动更新预装应用,而不允许来源不明的安装(How to push updates to prei

2019-07-31 08:44发布

我有一大堆的,需要通过自定义光盘闪现并给出了对客户的Android设备。 作为该ROM的部分将是一个“支持”的应用程序,其被绑定至设备。 它不能被发布到谷歌播放。 我需要能够为用户提供机会下载并安装该软件的更新版本。 我已经检查,下载并安装但已经实现了它依赖于设备配置为使安装来源不明的应用的代码。 我需要的设备才能够下载和安装这个特殊的APK,但仍不允许被安装来源不明的任何其他应用程序。

这可能吗?

(编辑:澄清如何选择的答案终于摸索)

添加的代码的活动是这样的:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() +"/update.apk")), "application/vnd.android.package-archive");
intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
intent.putExtra(Intent.EXTRA_ALLOW_REPLACE, true);

startActivityForResult(intent, 0);

到Android清单中加入以下代码:

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

在安装应用程序后,我用了一个根文件资源管理器将来自APK /user/apps/system/apps ,然后重新设置手机应用程序能够自行安装,在本身的后上方,而不会提示用户启用不受信任来源。 安装提示,列出该应用程序所需的权限,并给予用户安装或不选择仍然出现,但这很好。

Answer 1:

此方法仅适用于系统应用程序( 源 )

尝试通过增加和额外的场安装APK。

intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);

从来没有尝试过这一点。 该文档说,你需要调用startActivityforResult这个工作。 但是这需要API级别14.又尝试

intent.putExtra(Intent.EXTRA_ALLOW_REPLACE, true);

编辑:关于第二个想法,如果有自定义ROM,然后shareduserid系统添加到您的安装应用程序,并直接调用任何PackageInstallerActivity呼吁安装应用程序

EDIT2:

检查此代码 。 onClick函数用于安装应用程序,所以整个代码复制到你的应用程序,并添加

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

允许。

而对于应用程序的Android.mk添加

 LOCAL_CERTIFICATE := platform


文章来源: How to push updates to preinstalled apps without allowing installation from unknown sources
标签: android rom