Android7.0平台使用shell命令安装app时需要指定app包名和user。
pm install 参数含义:
pm install [options] <PATH>
-r: 覆盖安装已存在Apk,并保持原有数据;
-d: 运行安装低版本Apk;
-t: 运行安装测试Apk
-i : 指定Apk的安装器(package name)
-s: 安装apk到共享快存储,比如sdcard;
-f: 安装apk到内部系统内存;
-l: 安装过程,持有转发锁
-g: 准许Apk manifest中的所有权限;
代码:
try
{
Process p = Runtime.getRuntime().exec("pm install -i package_name -r -d --user 0 apk_path");
p.waitFor();
}catch (Exception e)
{
e.printStackTrace();
}
静默安装需要系统权限,所以app要使用平台签名,并且AndroidManifest.xml中声明权限:
<manifest
android:process="system"
android:sharedUserId="android.uid.system" />
<uses-permission android:name="android.permission.INJECT_EVENTS" />
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
网友评论