mo管理器java_Android开发之通过包管理器获取安装应用信息

2023-11-19

最近在自己写一个APP,有一个模块需要获取手机应用的一些信息。坑还是有,但都基本踩过了,自己把他实现了出来,实现方法还是很需要掌握的。底部弹出的对话框中四个选项的实现不多做说明,主要讲讲如何获取这些安装的应用信息。好了,不多说,看看效果图:

1363f7aa996072015c54f11172589aea.gif

获取手机安装应用信息:

1.写一个JavaBean,用于存放应用信息,生产get,set方法。

public classAppBean {privateDrawable appIcon;privateString appName;private intappSize;private boolean isSd=false;private boolean isSystem=false;privateString appPackageName;publicString getApkPath() {returnapkPath;

}public voidsetApkPath(String apkPath) {this.apkPath =apkPath;

}privateString apkPath;publicString getAppPackageName() {returnappPackageName;

}public voidsetAppPackageName(String appPackageName) {this.appPackageName =appPackageName;

}publicDrawable getAppIcon() {returnappIcon;

}public voidsetAppIcon(Drawable appIcon) {this.appIcon =appIcon;

}publicString getAppName() {returnappName;

}public voidsetAppName(String appName) {this.appName =appName;

}public intgetAppSize() {returnappSize;

}public void setAppSize(intappSize) {this.appSize =appSize;

}public booleanisSd() {returnisSd;

}public void setSd(booleansd) {

isSd=sd;

}public booleanisSystem() {returnisSystem;

}public void setSystem(booleansystem) {

isSystem=system;

}

}

属性写的很清楚,这里就不再多做注释。

2.写一个工具类,通过这个工具类,获取到手机安装应用的信息。我们都知道,安卓的所有应用都在包管理中,基本上,一个应用对应着一个包信息,所以,我们可以通过包管理器获取,通过包管理器中getInstalledPackages(0);传一个0,获取到所有应用。具体实现代码:

public static ListgetAllApk() {

ListappBeanList=new ArrayList<>();

AppBean bean=null;

PackageManager packageManager=UIUtils.getContext().getPackageManager();

List list=packageManager.getInstalledPackages(0);for(PackageInfo p:list) {

bean=newAppBean();

bean.setAppIcon(p.applicationInfo.loadIcon(packageManager));

bean.setAppName(packageManager.getApplicationLabel(p.applicationInfo).toString());

bean.setAppPackageName(p.applicationInfo.packageName);

bean.setApkPath(p.applicationInfo.sourceDir);

File file=newFile(p.applicationInfo.sourceDir);

bean.setAppSize((int) file.length());int flags=p.applicationInfo.flags;//判断是否是属于系统的apk

if ((flags& ApplicationInfo.FLAG_SYSTEM)!=0){

bean.setSystem(true);

}else{

bean.setSd(true);

}

appBeanList.add(bean);

}returnappBeanList;

}

需要注意几点:

*获取应用的应用名要通过packageManager.getApplicationLabel(p.applicationInfo).toString(),如果通过p.applicationInfo.name是拿不到应用名字的。

*安卓中通过FlAG来标识应用是否是自带应用,判定方法如上。

*UIUtils.getContext()是我封装的方法,用于调用Context上下文。

3.通过JavaBean取出数据展示:

略。

好了,展示数据就可以由自己随意展示了,就写到这,希望这篇文章对你的生活和学习有所帮助。如果你想知道实现的效果,可以在下方评论留言,我会再下篇博客更新~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mo管理器java_Android开发之通过包管理器获取安装应用信息 的相关文章

  • python 再复习一下遍历目录下文件及子文件夹

    代表目前所在的目录 代表上一层目录 代表根目录 注意点的位置就是了 import os for image in os listdir os path join os getcwd 利润表 print image for root dirs
  • Vijava学习笔记之DataCenter(基础配置信息)

    vijava 代码 实体类 package com vmware pojo 数据中心 author zhb public class DataCenter extends Entity private String name 数据中心名称
  • ASP.NET Core 中间件详解及项目实战

    前言 在上篇文章主要介绍了DotNetCore项目状况 本篇文章是我们在开发自己的项目中实际使用的 比较贴合实际应用 算是对中间件的一个深入使用了 不是简单的Hello World 如果你觉得本篇文章对你有用的话 不妨点个 推荐 目录 中间
  • 使用ps命令查看进程的准确启动时间与启动后所消耗的时间

    使用ps命令查看nginx进程的准确启动时间与启动后到现在所消耗的时间 hadoop DSJ 4G 26 ps eo pid lstart etime cmd grep nginx 2204 Tue Nov 21 16 52 47 2017
  • Linux之iptables详解及tcpdump

    https www jianshu com p ed001ae61c58 原文有几处写的不明白的地方加以重整 可以参考这个人写的 感觉他明白的笔记透彻 https blog 51cto com 13677371 2094355 作者一共在内
  • K8S暴露服务的三种方式

    文章目录 暴露服务的三种方式 NodePort LoadBalane Ingress 内容参考 暴露服务的三种方式 NodePort 将服务的类型设置成NodePort 每个集群节点都会在节点上打 开 一 个端口 对于NodePort服务
  • mtb2_VizQL_Cleaning_Regx phone email_CRISP-DM_pdf table to text then to Excel

    Changing field attribution Let us look at the World Happiness Report We create the following worksheet by placing Start
  • 真题详解(哈希冲突)-软件设计(七十)

    真题详解 3FN 软件设计 六十九 https blog csdn net ke1ying article details 130548812 在以阶段划分的编译器 阶段的主要作用是分析构成程序的字符及由字符构造规则构成的符号是否复合程序语
  • 使用redis远程连接数据库

    使用redis远程连接数据库 1 首先下在redis 略 2 下载好后如图 3 输入远程数据库地址 error 错误信息提示的是 没有数据库权限 需要输入密码 4 输入密码后就可以进行操作了 5 因为是key value格式的 所以其实re
  • str计算机中代表什么,STR到底是待机还是休眠

    1 为什么需要待机 休眠 尽管电脑硬件运行速度越来越快 但操作系统的体积也在不断膨胀 使得电脑开 关机时 启动 关闭的程序越来越多 花费时间也越来越漫长 因此如何让电脑能够快速启动 一开机就进入Windows 就成为用户关心的问题 于是 随
  • (代码审计)zzcms前台SQL注入

    1 首先通过Seay源码审计工具发现存在admin ask phpSQL注入漏洞 2 根据提示定位到这段代码
  • Java-static关键词的引入

    Java static关键词的引入 栈 局部变量 堆 new出来的结构 对象 数组 方法区 类的加载信息 静态域 常量池 1 相关概念 静态的 公有的 不属于哪个对象 可以用来修饰 属性 方法 代码块 内部类 当static修饰属性时 按照
  • PMS及应用安装过程分析一

    本文阐释应用安装过程 对于开机过程应用包扫描过程不讲述 请参考网上其他文章 PMS类图 APP安装过程 1 PackageInstallerActivity创建 1 1 getPackageManager 1 2 processPackag
  • python如何检查一个对象是否是可迭代对象

    有的时候我们会记不住python里哪种数据类型是可以迭代的对象 这个时候我们可以使用collections里的Iterable来检查这个实例是否可以迭代 gt gt gt from collections import Iterable 载
  • 某东商品价格抓取

    今天做了一个京东商品价格的需求 整理一下 第一步 打开Chrome浏览器自带抓包工具 选择network选项卡 第二步 按下Ctrl F5 打开search 在里面输入价格 例如图中输入的是1318 00 然后回车就会出现包含价格的接口出现
  • 选频网络的原理

    请高手给我讲解下选频网络的原理 选频电路 2012 09 28 18 23 freechen3 分类 工程技术科学 浏览173次 提问者采纳 2012 09 30 00 07 选频网络是利用谐振原理实现 输入的信号含有各次频率分量 选频网络
  • js扩展jquery对象基元的开发与代码编写

    js扩展jquery对象基元的开发与代码编写 function window undefined var Core function var eventarr var OnPageLoad undefined 获取USER信息 var ge
  • OpenCV:旋转矩形(RotatedRect)

    RotatedRect类是OpenCV的基础类 用于创建旋转矩形 下面是它的构造函数 包含旋转中心点 尺寸大小和旋转角度 构造函数1 RotatedRect const Point2f center const Size2f size fl
  • ​2 万字系统总结,带你实现 Linux 命令自由?

    前言 Linux 的学习对于一个程序员的重要性是不言而喻的 前端开发相比后端开发 接触 Linux 机会相对较少 因此往往容易忽视它 但是学好它却是程序员必备修养之一 如果本文对你有所帮助 请点个 吧 作者使用的是阿里云服务器 ECS 最便

随机推荐

  • redis主从同步,总是显示master_link_status:down的解决方法

    前几天 在修改一台从节点的redis的监听端口后 重启了下redis 发现master link status 很长时间一直都是down状态 查看了redis日志 发现日志里出现很多的 I O error trying to sync wi
  • 解决Java连接MySQL后出现的时区错误问题

    好不容易连接好数据库后 第二天打开运行 发现底下一串报红 The server time zone value is unrecognized or represents more than one time zone 线程 main ja
  • Java中变量的作用域【Java基础】

    最近在看 Thinking in Java 想把Java基础再巩固一下 在博客上遇到的以前没注意到的知识点或者较难的知识点记录下来 与大家分享 Java中的基本类型变量的作用域为 int x 1 变量x的作用域只在大括号内 System o
  • QT文件读取路径

    最近在弄中兴的一个程序大赛 用QT读取XML文件的编程 在编程中发现QT文件读取路径与VS有不同之处 我们提供给QFile的文件路径无非就是绝对路径和相对路径 绝对路径是绝对没问题的 不过相对路径就得小心了 谈到相对路径 需要注意区分进程所
  • MES系统给制造型企业带来了哪些效益

    MES系统要怎么给制造型企业带来效益 在这场剧烈的市场竞争中 制造企业不只要在产品质量和创新上具有竞争优势 而且产品的价格在很大程度上决定了企业的市场竞争力 MES系统如何去打破生产暗箱 建造通明化工厂 提高生产效率 如今 中国工厂存在两大
  • 逃逸闭包和非逃逸闭包

    在使用swift开发 使用闭包作为参数传递到函数中 但是总是默认提示加上 escaping 逃逸闭包 是指闭包在函数结束时 闭包就会随着函数的结束而被释放 非逃逸闭包 是指闭包在函数结束时 逃逸函数 不会随函数的结束而被释放 在该闭包执行后
  • ubuntu 下实现 docker+ovs+quagga搭建网络---bgp

    注 本机上现有quagga镜像 ovs虚拟交换机 2 9 1 docker 18 09 7 实现bgp网络搭建 1 sudo ovs vsctl add br br1 增加一个ovs网桥br1 2 sudo docker images 查看
  • ADFS 概念与基本开发介绍 (1)

    如您转载本文 必须标明本文作者及出处 如有任何疑问请与我联系 me nap7 com ADFS 相关开发技术的中文资料相对匮乏 之前再弄这个东西的时候搞的比较辛苦 因此总结此文档 以解后人之忧 本文会首先介绍与联合身份验证有关的概念及相关的
  • 泰迪杯挑战赛优秀论文-A题-基于数据挖掘的上市公司高送转预测

    目 录 第 1 章 绪论 1 1问题背景 1 2问题重述 1 3本文主要工作与创新点 1 4模型假设 1 5本文研究意义 第 2 章 相关理论 2 1高送转相关知识介绍 2 1 1高送转的实质 2 1 2预测下一年上市公司高送转的一些其他条
  • Redis 事务

    目录 Redis 事务 一 Redis事务的概念 二 redis事务提出的逻辑 三 redis事务的基本操作 四 事务的执行流程 五 redis锁 六 redis分布式锁 Redis 事务 一 Redis事务的概念 Redis 事务的本质是
  • 3、思科模拟器介绍 (认识思科模拟器界面、安装思科模拟器、思科模拟器汉化)

    认识思科模拟器界面 标题栏 菜单栏 思科模拟器软件包 CSDN思科模拟器安装 https download csdn net download weixin 53645521 85135225 百度网盘思科模拟器安装包 链接 https p
  • 图像恢复(加噪与去噪)

    人工智能导论实验导航 实验一 斑马问题 https blog csdn net weixin 46291251 article details 122246347 实验二 图像恢复 https blog csdn net weixin 46
  • tar命令笔记

    作用 tar 可以保存文件属性 本身不具备压缩能力 配合gzip或者bzip 进行压缩解压缩 参数 相关参数如下 来自百度百科 c create 创建新的tar文件 x extract get 解开tar文件 t list 列出tar文件中
  • 火狐浏览器文本两端对齐无效text-align: justify

    找了很多地方 尝试很多办法都不好使 直到看到这篇 只需要设置了text align justify时加设一个white space pre line就可以了
  • [Docker]使用Docker部署Kafka

    Kafka 是一个分布式流处理平台 它依赖于 ZooKeeper 作为其协调服务 在 Kafka 集群中 ZooKeeper 负责管理和协调 Kafka 的各个节点 因此 要在 Docker 容器中启动 Kafka 通常需要同时启动一个 Z
  • 对数器的简单使用

    对数器 1 前言 2 内容 简介对数器 以排序算法的检测为实例 3 总结 4 更新日志 1 前言 学习左神的数据结构的过程中 推荐使用对数器检验自己的算法是否正确 2 内容 简介对数器 1 对数器的作用 在一个题目未OJ的时候 可以通过对数
  • Transformer学习笔记

    一 Transformer诞生背景 Transformer模型是解决序列转录问题的一大创新 在Transformer模型之前 序列转录模型都或多或少的基于复杂的循环或卷积神经网络 循环神经网络的计算是时序性的 位置的计算必须基于之前所有位置
  • 微信小程序数据 \n 换行符失效解决办法

    最近遇到一个问题 使用uni app写小程序时 拿到一个字符串 后台返回的 需要在 n 处换行 但是直接使用 let title 黄鹤楼送 n孟浩然之广陵
  • 使用python对银行信息管理系统的简单实现

    一 首先是用户属性的类 class account object 储存用户信息的类 def init self id1 name tel money self id id1 账户 self name name 姓名 self tel tel
  • mo管理器java_Android开发之通过包管理器获取安装应用信息

    最近在自己写一个APP 有一个模块需要获取手机应用的一些信息 坑还是有 但都基本踩过了 自己把他实现了出来 实现方法还是很需要掌握的 底部弹出的对话框中四个选项的实现不多做说明 主要讲讲如何获取这些安装的应用信息 好了 不多说 看看效果图