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

  代码如下

    

  1. import android.content.pm.ApplicationInfo;
  2. import android.content.pm.PackageManager;
  3. import android.content.pm.PackageManager.NameNotFoundException;
  4. import android.content.pm.PackageInfo;
  5. import java.util.List;
    import java.util.ArrayList;
  6.  
  7. private boolean checkApkExist(Context context, String packageName){
  8. if (packageName == null || "".equals(packageName)) {
  9. return false;
  10. }
  11. final PackageManager packageManager = context.getPackageManager();
  12. List< PackageInfo> pinfo = packageManager.getInstalledPackages(0);
  13. List<String> pName = new ArrayList<String>();
  14. if (pinfo != null) {
  15. for(int i = 0; i < pinfo.size(); i++){
  16. String pn = pinfo.get(i).packageName;
  17. pName.add(pn);
  18. }
  19. }
  20. return pName.contains(packageName);
  21. }

验证成功

package-判断安装应用是否存在的更多相关文章

  1. Sublime Text以及Package Control安装方法

    官方下载:Sublime Text 中国论坛:Sublime 论坛 Sublime Text 是一个代码编辑器,具有漂亮的用户界面和强大的功能,并且它还是一个跨平台的编辑器,同时支持Windows.L ...

  2. Sublime Text 3常用快捷键 以及package control 安装

    网络上搜索到的,现整理下来备用: package control安装 view下 ctrl+~ import urllib.request,os; pf = 'Package Control.subl ...

  3. Mac下sublime text 的“package control”安装

    小伙伴们好,我根据昨晚的经历写一个小总结:关于“Mac下sublime text 的“package control”安装”.本来安装package control是一个无比简单的事情,即使是初次使用 ...

  4. 通过 Sublime Package Control 安装插件后不能用的解决办法

    最近使用 Sublime 写 SASS 的时候需要使用高亮功能,通过 Package Control 安装了相关插件,但是安装之后没有反应,再次打开 Package Control 的时候,已经搜索不 ...

  5. sublime使用package control安装插件

    sublime本身可以集成Package Control来进行插件安装,非常方便. 1. 安装package control(插件包管理) 1.1 进入https://packagecontrol.i ...

  6. 006_Mac下sublime text 的“package control”安装,sublimepackage

    Mac下sublime text 的“package control”安装,sublimepackage 小伙伴们好,我根据昨晚的经历写一个小总结:关于“Mac下sublime text 的“pack ...

  7. Weka中数据挖掘与机器学习系列之Weka Package Manager安装所需WEKA的附加算法包出错问题解决方案总结(八)

    不多说,直接上干货! Weka中数据挖掘与机器学习系列之Weka系统安装(四) Weka中数据挖掘与机器学习系列之Weka3.7和3.9不同版本共存(七) 情况1 对于在Weka里,通过Weka  P ...

  8. Sublime Text3的Package Control安装教程,及报错解决There Are No Packages Available For Installation

    一.Package Control的安装 Sublime 有很多插件,这些插件为我们写python代码提供了非常强大的功能,这些插件需要单独安装.而安装这些插件最方便的方法就是通过Package Co ...

  9. 使用package.json安装模块

    node.js模块的安装可以使用npm安装,如下: $ npm install <Module Name> 每个项目的根目录下面,一般都需要一个package.json文件,定义了这个项目 ...

  10. rbx1 package 下载安装过程

    学习INSTALLING THE ROS-BY-EXAMPLE CODE,是书中第五章的内容,如果我们按照上一篇教程执行过了,就可以直接进入第五章,安装一个叫rbx1的包.这个包里面包括了本书中用到的 ...

随机推荐

  1. 35.自己实现vector模板库myvector

    myvector.h #pragma once //自己写的vector模板库 template <class T> class myvector { public: //构造 myvec ...

  2. Asp.Net中使用水晶报表(中)

    Asp.Net中使用水晶报表(中) 使用Pull模式 我们将通过下面的这些步骤来通过Pull模式来执行水晶报表 1.首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接. 2.拖放一个 C ...

  3. Adobe CC update (Windows/Mac OS) 独立升级包下载

    Windows 版 xiaogezi.cn Photoshop CC 下载 Download 大小 Size 日期 Date 文档 Notes Adobe Photoshop 14.2.1 Updat ...

  4. Spring MVC登录注册以及转换json数据

    项目结构; 代码如下: BookController package com.mstf.controller; import javax.servlet.http.HttpServletRespons ...

  5. PostgreSQL Replication之第八章 与pgbouncer一起工作(5)

    8.5 维护 pgbouncer 除了我们在本章已经说明的,pgbouncer有一个很好的能够执行基本管理和监控任务的交互式管理界面. 它是如何工作的呢?pgbouncer提供给您一个虚假的称为pgb ...

  6. SqlServer 删除日志

    1  数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间.SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作.可以通过直接删除log文件和 ...

  7. [转载]CentOS 7虚拟机下设置固定IP详解

    在 复制 他人作品之前,是因为我再此“跌倒”过一次,虽然原主说是永久地址,但是地址失效 不可避免.所以就原封不动的copy了过来,我自己也是按照他的一步一步配置的,我成功了,相信你们也会成功. 如果不 ...

  8. head---显示文件的开头的内容

    head命令用于显示文件的开头的内容.在默认情况下,head命令显示文件的头10行内容. 语法 head(选项)(参数) 选项 -n<数字>:指定显示头部内容的行数: -c<字符数& ...

  9. Win10 +VS2015 配置openCV3.4.0

    配置过程参考链接:https://www.cnblogs.com/linshuhe/p/5764394.html 其他链接:https://blog.csdn.net/weixin_39393712/ ...

  10. 洛谷 P2386 放苹果

    P2386 放苹果 题目背景 (poj1664) 题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分发(5,1,1和1,1,5是同一种方法) 输入输出格式 输入 ...