今天在修改一个bug的时候,遇到一个问题,就是一个应用卸载了以后,在超级用户权限界面仍然会加载进来这个应用的相关信息。自己修改的时候,为了方便,就直接使用了里面一个加载图标的代码作为条件,也就是说,如果这个应用已经被卸载了,那么这个图标就是加载不进来的。但是,别人给我指出了这个方法的漏洞,因为极有可能一些应用本身是都没有图标的,虽然这个情况的可能性很小,但毕竟这是一个潜在的漏洞。然后还是严谨一些,直接使用应用安装与否的判断来修改的。

  代码如下

    

import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.PackageInfo;
import java.util.List;
import java.util.ArrayList; private boolean checkApkExist(Context context, String packageName){
if (packageName == null || "".equals(packageName)) {
return false;
}
final PackageManager packageManager = context.getPackageManager();
List< PackageInfo> pinfo = packageManager.getInstalledPackages(0);
List<String> pName = new ArrayList<String>();
if (pinfo != null) {
for(int i = 0; i < pinfo.size(); i++){
String pn = pinfo.get(i).packageName;
pName.add(pn);
}
}
return pName.contains(packageName);
}

验证成功

最新文章

  1. 关于git自己所学到的东西
  2. mysql win源码比较大 不需要的文件删除 记录下来
  3. [转]Aptana Studio 3配置Python开发环境图文教程
  4. CentOS6开启FTP及telnet服务教程
  5. 【Python实战02】共享Python代码到PyPI社区
  6. S2 结业考试前改错汇总
  7. APT源
  8. cdn是什么
  9. 在阿里云ECS(CentOS6.5)上安装tomcat
  10. Hibernate学习---用Session实现CURD
  11. VS2010断点调试技巧
  12. Pytorch里的CrossEntropyLoss详解
  13. react canvas圆环动态百分比
  14. wav文件系列_2_Python实现读写
  15. WPF 和 百度 eChart 交互
  16. 18-matlab知识点复习一
  17. multiply对应位置相乘 与 dot矩阵乘
  18. Springboot Thymeleaf 发邮件 将html内容展示在邮件内容中
  19. Spark、Hadoop、Hive相关文章
  20. 关于.NetCore 2.0 迁移到2.1的一些建议和问题

热门文章

  1. Case study: word play
  2. POJ 2110 二分+暴搜
  3. MetaSploit攻击实例讲解------终端下PostgreSQL数据库的使用(包括kali linux 2016.2(rolling) 和 BT5)
  4. SparkCore基础(二)
  5. 【DNN发布包解释】package 包裹
  6. redis动态修改参数
  7. js循环匹配组合成新对象或js循环组合新数据
  8. PostgreSQL指定用户可访问的数据库pg_hba.conf
  9. [WC2011]最大XOR和路径(线性基)
  10. Unity C# 设计模式(七)适配器模式