如何在Android设备上静默安装应用程序?

问题描述:

所以,我通过#CommonsWare发现了这个答案here,它允许应用程序像Google Play一样悄悄安装应用到手机。在那里,提到该应用程序应使用固件签名证书进行签名,或将应用程序添加到系统文件夹。我需要知道的是,如果我将应用程序添加到system \ app \或system \ priv-app \,那么是否可以将应用程序静默安装到Android设备上?或者我需要使用INSTALL_PACKAGES权限?如果是这样,怎么样?如何在Android设备上静默安装应用程序?

我在问这个问题,因为我只有10个声望,所以我不能在那里发表评论。

我找到了答案#inazaruk here,但它很复杂,并提供的链接已死亡。

这是进行安装的应用程序,需要系统签名或驻留在system/app system/priv-app中,对于那些需要持有正确权限的用户来安装应用程序(即使您系统签名),区别在于您可以获得必要的许可。您使用权限的事实与用户获得弹出式窗口询问其是否正确无关。

为了安装包,您可以致电(ApplicationPackageManager.installPackage): http://androidxref.com/7.1.1_r6/xref/frameworks/base/core/java/android/app/ApplicationPackageManager.java#1561

public void installPackage(Uri packageURI, PackageInstallObserver observer, 
     int flags, String installerPackageName) { 

由于ApplicationPackageManager已@hide它你将不得不使用反射一样的东西来访问它。当你调用“Context.getPackageManager”时你会得到一个ApplicationPackageManager。

+0

我想你说这是从应用程序本身完成的。这是否意味着我们不需要应用程序的固件签名证书来获得设备的完整安装权限?你能更清楚吗? – Neeraj

+1

检查第一句:)“这是执行安装的应用程序,需要系统签名或驻留在system/app system/priv-app中”,即您的安装程序应用程序需要系统签名。 – JohanShogun

+0

因此,如果我将我的应用程序交给手机制造商(使其成为设备中的系统应用程序),那么他们应该进行系统签名,对吧? – Neeraj