7.0 apk 安装 (pm 命令)

最近在移植rom模块到 7.0 时, 发现之前静默安装的功能无法实现了,会报出错误:

java.lang.SecurityException: runInstallCreate from pm command asks to run as user ….. requires android.permission.INTERACT_ACROSS_USERS_FULL

然后 我就很情愿的按照他的错误, 去我的app 里面加上了这个权限。以为可以成功,加了之后一样错误不行, 然后就百度了一下, 也基本没有发现什么解决方案

相关一些 pm 等的东西,后面再发

那可能之前的安装apk代码都是以下几种:

1.  Process p = Runtime.getRuntime().exec(“pm install -r  apkpath”)
                        p.waitFor();

2.  Process p = Runtime.getRuntime().exec( new String[]{ "pm", "install", "-r", apk})
                        p.waitFor();

3.  private void SilentInstall(Context mContext,final String mypackageName, String path) {
         Uri uri = Uri.fromFile(new File(path));
         //Log.d(TAG, "SilentInstall path="+path);
         //Log.d(TAG, "SilentInstall uri="+uri);
         //Log.d(TAG, "SilentInstall packageName="+packageName);
           int installFlags = 0;
           PackageManager pm = mContext.getPackageManager();
           try {
              PackageInfo packageInfo = pm.getPackageInfo(mypackageName,
                     PackageManager.GET_UNINSTALLED_PACKAGES);
                if (packageInfo != null) {
                   installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
             }
           } catch (NameNotFoundException e) {
              //Log.e(TAG, "NameNotFoundException = " + e.getMessage());
          }

          pm.installPackage(uri, new IPackageInstallObserver.Stub() {
              @Override
              public void packageInstalled(String packageName, int returnCode) {
              // Looper.prepare();
                  if (returnCode == 1) {
                        Log.d(TAG, "install apk Success packageName:"+ packageName);
                    } else {
                       Log.d(TAG, "install fail!");
                   }
                 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空白的泡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值