package-判断安装应用是否存在
2024-08-31 18:28:24
今天在修改一个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);
}
验证成功
最新文章
- 关于git自己所学到的东西
- mysql win源码比较大 不需要的文件删除 记录下来
- [转]Aptana Studio 3配置Python开发环境图文教程
- CentOS6开启FTP及telnet服务教程
- 【Python实战02】共享Python代码到PyPI社区
- S2 结业考试前改错汇总
- APT源
- cdn是什么
- 在阿里云ECS(CentOS6.5)上安装tomcat
- Hibernate学习---用Session实现CURD
- VS2010断点调试技巧
- Pytorch里的CrossEntropyLoss详解
- react canvas圆环动态百分比
- wav文件系列_2_Python实现读写
- WPF 和 百度 eChart 交互
- 18-matlab知识点复习一
- multiply对应位置相乘 与 dot矩阵乘
- Springboot Thymeleaf 发邮件 将html内容展示在邮件内容中
- Spark、Hadoop、Hive相关文章
- 关于.NetCore 2.0 迁移到2.1的一些建议和问题
热门文章
- Case study: word play
- POJ 2110 二分+暴搜
- MetaSploit攻击实例讲解------终端下PostgreSQL数据库的使用(包括kali linux 2016.2(rolling) 和 BT5)
- SparkCore基础(二)
- 【DNN发布包解释】package 包裹
- redis动态修改参数
- js循环匹配组合成新对象或js循环组合新数据
- PostgreSQL指定用户可访问的数据库pg_hba.conf
- [WC2011]最大XOR和路径(线性基)
- Unity C# 设计模式(七)适配器模式