有时候我们开发中需要获取到手机中安装的所有软件相关信息,比如判断是否安装了某个软件,或者获取某个软件的具体包名等。这里我贴出相关方法。

首先我们要有一个APP的实体类

public class AppInfo {public int uid;public String label;public String package_name;public Drawable icon;public long traffic;public long rowid;public int xuhao;public int month;public int day;public String icon_path;public AppInfo() {uid = 0;label = "";package_name = "";icon = null;traffic = 0;rowid = 0;xuhao = 0;month = 0;day = 0;icon_path = "";}

其次我们需要一个方法

   // 获取已安装的应用信息队列public static ArrayList<AppInfo> getAppInfo(Context ctx, int type) {ArrayList<AppInfo> appList = new ArrayList<AppInfo>();SparseIntArray siArray = new SparseIntArray();// 获得应用包管理器PackageManager pm = ctx.getPackageManager();// 获取系统中已经安装的应用列表@SuppressLint("WrongConstant")List<ApplicationInfo> installList = pm.getInstalledApplications(PackageManager.PERMISSION_GRANTED);for (int i = 0; i < installList.size(); i++) {ApplicationInfo item = installList.get(i);// 去掉重复的应用信息if (siArray.indexOfKey(item.uid) >= 0) {continue;}// 往siArray中添加一个应用编号,以便后续的去重校验siArray.put(item.uid, 1);try {// 获取该应用的权限列表String[] permissions = pm.getPackageInfo(item.packageName,PackageManager.GET_PERMISSIONS).requestedPermissions;if (permissions == null) {continue;}boolean isQueryNetwork = false;for (String permission : permissions) {// 过滤那些具备上网权限的应用if (permission.equals("android.permission.INTERNET")) {isQueryNetwork = true;break;}}// 类型为0表示所有应用,为1表示只要联网应用if (type == 0 || (type == 1 && isQueryNetwork)) {AppInfo app = new AppInfo();app.uid = item.uid; // 获取应用的编号app.label = item.loadLabel(pm).toString(); // 获取应用的名称app.package_name = item.packageName; // 获取应用的包名app.icon = item.loadIcon(pm); // 获取应用的图标appList.add(app);}} catch (Exception e) {e.printStackTrace();continue;}}return appList;  // 返回去重后的应用包队列}

调用该方法我们就获取到了当前手机中所有应用的一个数据了。

Android中获取手机内所有应用信息相关推荐

  1. Android中获取手机中的联系人信息

    #Android中获取手机中的联系人信息 1.0.查看系统通讯录的表,表路径:data->data->com.android.providers.contacts->database ...

  2. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...

    Android中获取应用程序(包)的信息PackageManager的使用(一) 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等 ...

  3. Android中获取手机电量信息

    有些时候我们需要在我们的应用上为用户展示当前手机的电量,这时候我们就需要用到广播了,我们都知道在动态注册广播的时候,我们需要传入一个BroadcastReceiver类对象,还有一个意图过滤器Inte ...

  4. Android中获取手机设备信息、RAM、ROM存储信息,如宽、高、厂商名、手机品牌

    借鉴:https://www.jianshu.com/p/ca869aa2fd72 今天有两个工具类总结,代码里都有注释,直接看代码. 一.首先第一个,主要获取手机设备信息DeviceInfoUtil ...

  5. Android之获取手机基本信息、内存信息、网路信息、电池信息,等一共18项数据

    获取手机信息,代码复制可用,开发工具为:Android Studio 1.手机品牌 2.手机型号 3.屏幕分辨率 4.像素密度 5.屏幕尺寸 6.Android 系统版本 7.运行内存 8.储存空间 ...

  6. Android中获取应用程序(包)的信息-----PackageManager的使用(一)

    本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename ...

  7. Android中获取手机 IMEI Mac地址 IP地址

    一.获取手机IMEI 手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IM ...

  8. android获取机主手机号,Android中 获取手机通讯录和手机机主手机号码——诺诺涂鸦记忆...

    目标:获取手机通讯录联系人的姓名和手机号码,屏幕座机和其他非手机号码,避免号码重复 (注:我只给出了代码思路和用法示例,大家可以自己调用方法debug运行看结果或者自行编写显示结果的代码,根据需要进行 ...

  9. android中获取手机系统年、月、日

    在android中系统的月份是从0-11计算的,所以我们想要拿到真实的月份需要加一. int year = Integer. valueOf (Calendar. getInstance ().get ...

最新文章

  1. 科大讯飞俞仁忠:组织结构与激励机制
  2. pytorch 同步gpu
  3. 小学生学python-小学生都学Python了,你还不知道如何开始
  4. 250相当于什么显卡_2K(4K)144hz显示器需要什么显卡来带? 本文将给你答案。
  5. BUGLY集成升级空指针问题
  6. HDU1846 Brave Game【巴什博弈】
  7. 超星pdg格式转换为pdf格式原理方法
  8. idea关联本地的svn项目
  9. wifi-sdio接口
  10. 钉钉群机器人关键词自动回复_自动化运维平台Spug测试
  11. 关于Hanlp的源码
  12. Cocoa/Cocoa Touch
  13. 一个直播例子:快速集成iOS基于RTMP的视频推流
  14. MySQL:BLOB/TEXT Column Used in Key Specification Without a Key Length
  15. PDF转换器for mac
  16. 如何写好博客——常用标点符号易错点正确用法汇总
  17. 在Ubuntu18.04上编译SWASH模型
  18. 【C++】C++格式化输出/输出格式控制/输出精度控制
  19. web自动化(鼠标、键盘操作)
  20. 23-基于51单片机土壤湿度检测及自动浇花系统(带时间显示)

热门文章

  1. [CTFSHOW]命令执行
  2. 蚂蚁集团强化与阿里隔离:马云不再是实际控制人;iPhone 15 Pro将独占6大功能;Linux 4.9正式EOL|极客头条
  3. 系统即将关机请保存关机是由nt_Win7旗舰版系统下开机提示自动关机是由NT AUTHORITY SYSTEM初始如何解决...
  4. java数字连连看实验报告_2019年全国高校计算机能力挑战赛初赛java语言解答
  5. 实验1 输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束
  6. 电子邮箱系统注册哪家好?163邮箱联系人怎么管理?
  7. 首例 3次IPO:前2次申请科创板、创业板均撤回、第3次改为主板、难圆其说变更保代及券商……
  8. 【论文阅读笔记 + 代码解读】(2018 AAAI)ST-GCN
  9. 视觉错觉的举例------------善于发现生活中的
  10. C语言学生学号管理系统练习