静默安装android,Android静默安装

个人了解到的静默安装的方式有以下4种:

root手机,通过su命令获取root权限,并执行pm -r path命令。

缺点:需要root手机;需要询问用户获取超级权限;

参考:Android静默安装实现方案,仿360手机助手秒装和智能安装功能

注意:上述参考的文章中的isRoot方法有误,应改为如下:

//bool = (!new File("/system/bin/su").exists()) || (!new File("/system/xbin/su").exists());

bool = new File("/system/bin/su").exists() || new File("/system/xbin/su").exists();

使用无障碍服务

缺点:需要引导用户打开对应的无障碍服务;安装界面仍旧会弹出,只是智能地帮用户完成了点击操作;

参考:Android静默安装实现方案,仿360手机助手秒装和智能安装功能

打上系统签名,声明INSTALL_PACKAGES权限,执行pm -r path命令。

缺点:需要系统签名;

参考:使用pm命令安装或卸载apk,静默安装、卸载方法

注意:上述参考的文章中在给apk系统签名前,在manifest中添加了android:sharedUserId,但我使用源码编译的方式来打上系统签名时没有添加android:sharedUserId也没问题;文章中没有提到要添加INSTALL_PACKAGES权限,但我测试后发现是需要的。关于系统签名请看

Android应用程序获取系统签名的方法,个人对是否需要添加android:sharedUserId还是有疑惑,有知道的小伙伴麻烦告知下哈。

打上系统签名,声明INSTALL_PACKAGES权限,引入IPackageManager相关代码,调用iPm.installPackage(Uri.fromFile(apkFile), null, 2,apkFile.getName());进行静默安装。

缺点:需要系统签名;需要引入源码中的相关代码;

参考:Android真正的静默安装

我看了一些第三方的应用市场,一般在设置下都会有前两种静默安装的方式可供选择,而后两种静默安装的方式主要是厂商自己的应用市场使用。

Android7.0静默安装

如果在7.0的系统上使用第三种静默安装的方式会出现以下错误:

java.lang.SecurityException:

Permission Denial: runInstallCreate from pm command asks to run as user -1 but is calling from user 0;

this requires android.permission.INTERACT_ACROSS_USERS_FULL

主要步骤如下:

修改命令为pm install -i 作为安装者的应用包名 --user 0 需要安装的应用在移动设备上的路径。

添加android.permission.INTERACT_ACROSS_USERS_FULL权限。

我试了以上两篇文章的介绍的方法,还是失败,提示Failure [null],不知道怎么破了,可能是厂商的定制问题吧。。。还在思考中。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值