<=Api 23 时 相信大家都是通过installPackage这个类反射来静默安装apk的。但是呢api24及其之后就没有这个方法了,你再PackageManagerService或IPackageManager都是没有这个方法了。所以我们只能通过installPacakageAsUser来实现静默安装了。代码如下:

/**

* void installPackageAsUser(in String originPath,

* in IPackageInstallObserver2 observer,

* int flags,

* in String installerPackageName,

* int userId);

* @param installPath

*/

private void installApkInSilence(String installPath,String packageName) {

Class> pmService;

Class> activityTherad;

Method method;

try {

activityTherad = Class.forName("android.app.ActivityThread");

Class> paramTypes[] = getParamTypes(activityTherad, "getPackageManager");

method = activityTherad.getMethod("getPackageManager", paramTypes);

Object PackageManagerService = method.invoke(activityTherad);

pmService = PackageManagerService.getClass();

Class> paramTypes1[] = getParamTypes(pmService, "installPackageAsUser");

method = pmService.getMethod("installPackageAsUser", paramTypes1);

method.invoke(PackageManagerService, installPath, null, 0x00000040, packageName, getUserId(Binder.getCallingUid()));//getUserId

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

}

}

private Class>[] getParamTypes(Class> cls, String mName) {

Class> cs[] = null;

Method[] mtd = cls.getMethods();

for (int i = 0; i < mtd.length; i++) {

if (!mtd[i].getName().equals(mName)) {

continue;

}

cs = mtd[i].getParameterTypes();

}

return cs;

}

public static final int PER_USER_RANGE = 100000;

public static int getUserId(int uid) {

return uid / PER_USER_RANGE;

}

android 静默暗转_Android 7.0 静默安装相关推荐

  1. android 静默暗转_Android静默安装

    想要做到静默安装,其实就是要有权限执行pm install命令.准备工作其实就两步: 1.获取执行权限 2.执行命令 我们首先介绍第二步,如何执行pm install命令: 关键代码其实就一句: Ru ...

  2. android 动态获取全县_android 6.0之后动态获取权限

    1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在 ...

  3. android ota不打包_android 6.0系统 make otapackage 错误

    android 6.0 系统:在make otapackage时,出现如下错误: unable to load device-specific module; assuming none using ...

  4. android 实现磨砂效果_Android 5.0 下毛玻璃(磨砂)效果如何实现?

    刚刚做技术调研,可以给一些优缺点的对比. 目前主流实现毛玻璃效果(高斯模糊)分大致三种方法: 一 利用RenderScript接口 利用现有Android结构,通过RenderScript调用底层接口 ...

  5. android7.0 静默安装

    android7.0 静默安装,可以用来更新已经安装的应用.无法获取安装进度,可以使用系统广播来监听应用的安装.卸载.更新.7.1.2版本亲测可行.不过使用了系统签名再次签名! /** * 静默安装 ...

  6. 解决编译失败 Attribute meta-data#android.support.VERSION@value value=(26.0

    报错如下: Attribute meta-data#android.support.VERSION@value value=(26.0.0) from [com.android.support:des ...

  7. android功能导航布局,安卓9.0新功能 屏幕旋转将与导航栏同窗

    中关村在线消息:今天早些时候谷歌向开发者们推送了Android P(也称安卓9.0)的首个开发者预览版,在原先8.0的基础上进一步改进了通知栏,也为刘海屏幕专门进行了优化.意味着未来"刘海& ...

  8. 用Android访问本地站点---(localhost,10.0.2.2)要区别

    2019独角兽企业重金招聘Python工程师标准>>> 输入http://localhost:8080/kankong/index.html,可是这将不会成功,为什么呢?问题是这样的 ...

  9. android mysql开发工具_Android开发工具--adb的使用

    adb(Android Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态.还可以进行以下的操作: 1.快速更新设备或手机模拟器中的代 ...

  10. Android之导入项目提示Android requires compiler compliance level 5.0 or 6.0. Found ‘1.8‘ instead解决办法

    1.问题 导入项目eclipse提示如下: Android requires compiler compliance level 5.0 or 6.0. Found '1.8' instead 2.解 ...

最新文章

  1. 三,ES6中需要注意的特性(重要)
  2. 【Java】面试高频考题---topK问题详解(堆heap求解)
  3. R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理、构建词袋模型、构建xgboost文本分类模型、基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化
  4. 转:多线程环境下调用 HttpWebRequest 并发连接限制
  5. Tensorflow模型的保存与恢复的细节
  6. base64核心原理
  7. AUTOSAR从入门到精通100讲(六十)-Explanation of Firmware Over-The-Air
  8. 网络工程师晋升_晋升为工程师的最快方法
  9. Nginx+Tomcat+Memcached集群 【测试成功】
  10. Z-BlogPHP主题/名扬图文博客主题模板商业版
  11. 2019交通顶级期刊_2019年顶级11面试准备书
  12. 机器学习模型可解释性进行到底——特征重要性(四)
  13. 面试题-JQuery里Ajax的原理是怎样的?
  14. Kmp算法(java)
  15. 硬盘分区-增加C盘容量教程
  16. 4、杂项:Hyper-v/远程桌面使用USB设备(串口、加密狗等)
  17. ffmpeg音频滤镜
  18. ticklength
  19. mysql中的锁(表锁,行锁)
  20. 图像解析——(java)识别车牌步骤——更新中

热门文章

  1. 人脸图像质量评价:FaceQnet
  2. 八数码问题matlab实现,A* 算法解决八数码问题 matlab
  3. 前端应用 - 汉字笔顺书写演示带拼音及发音
  4. 安信可nbiot模块_安信可wifi模块
  5. 10-新闻发布系统数据库-新闻管理数据操作
  6. pytorch实现自己制作训练集和测试集
  7. 基于MiniC的语义分析(使用javacc)
  8. 不使用imrotate 的图像旋转实现
  9. swustoj堆排序算法(1015)
  10. [操作系统] FAT文件系统概述