Android静默安装的方案有很多种,如利用ProcessBuilder或者Runtime.getRuntime().exec()运行pm isntall命令,但此方法需要先su,需要root权限,或者反射获取PackageManager.installPackage(),使用起来也比较繁琐,同时需要获取系统权限,在API21以上可以是用PackageInstaller.Secssion实现静默安装,该接口也需要获取系统权限android.permission.INSTALL_PACKAGES,不多说,直接上代码。
public void install(@NonNull Context context,@NonNull String path) throws Exception {
File file=new File(path);
String apkName=path.substring(path.lastIndexOf(File.separator)+1,path.lastIndexOf(".apk"));
//获取PackageInstaller
PackageInstaller packageInstaller = context.getPackageManager()
.getPackageInstaller();
PackageInstaller.SessionParams params=new PackageInstaller
.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL);
PackageInstaller.Session session=null;