应用冻结器-Package信息的获取

我们要做的的事情是冻结一个应用,没有应用的信息怎么能行咧。第一步当然的获取应用的信息鸭。

那么问题来了,要怎么获取呢?

可以通过PackageInfo来获取所需的应用信息。安卓给我们提供PackageManager,在Context上下文对象中,通过getPackageManager()可以获取PackageManager对象。再通过该对象的getInstalledPackages()方法可以获取应用信息。

实现代码如下:

//获取应用信息
public List<PackageInfo> getPackages() {return getPackageManager().getInstalledPackages(0);
}

有了PackeageInfo,我们就可以获取到应用的各种信息,如包名,应用名,应用图标等信息。由于我们要在应用中显示一个列表,列表里面显示应用的包名、应用名、图标、是否被冻结的信息。所以我们还要对这个返回的PackageInfo做进一步的处理。
我们把要的信息存放进HashMap里,再把这个Map放进列表里,这样遍历Map对象用相应的Key值取出信息就行了。

实现代码如下:

//获取主要的应用信息
public List<HashMap<String, Object>> getAppMainInfo(List<PackageInfo> packages) {PackageManager pm = getPackageManager();List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();for (PackageInfo pkage : packages){HashMap<String, Object> map = new HashMap<String, Object>();map.put("packageName", pkage.packageName);map.put("labelName", (String)pm.getApplicationLabel(pkage.applicationInfo);map.put("icon", getAppIconByPackageName(pkage.packageName));map.put("enabled", pkage.applicationInfo.enabled);list.add(map);}return list;
}

嗯?貌似上面的getAppIconByPackageName函数似乎不是安卓自带的鸭。其实该函数是为了代码更加整洁,把获取应用图标的代码提炼出来写成一个函数。

代码如下:

//获取应用图标,成功返回应用图标,失败返回默认图标
public Drawable getAppIconByPackageName(String packageName){Drawable drawable;try{drawable = getPackageManager().getApplicationIcon(packageName);}catch (PackageManager.NameNotFoundException e){e.printStackTrace();drawable = getDrawable(R.mipmap.ic_launcher);}return drawable;
}

Ok,获取应用信息的工作基本完成。通过获取应用信息,对PackageManager和PackageInfo有基本的了解。

小辣鸡的Android开发之路-应用冻结器-1-Package信息的获取相关推荐

  1. 小辣鸡的Android开发之路-应用冻结器-4-实现应用的禁止和解禁

    实现完应用信息的获取.页面的布局和列表的加载,最后要实现软件的核心功能,也就是应用的禁止与解禁功能. 这两个功能需要Root权限,并执行对应的Shell命令.因此需要写一个AppExecer的类来实现 ...

  2. 小辣鸡之——淘宝首屏静态页面的编写

    html结构--css样式--js行为 由于只是静态页面的编写,所以不涉及到js. 刚入门前端2个星期,写了这么个入门页面,mark这篇给自己看. 心得: 1.要先规划好区域.比如导航条.搜索条.主要 ...

  3. 【近3万字分享】《Android开发之路——10年老开发精心整理分享》

    目录 前言 1 Android开发学习路线 1.1 大神最新总结(推荐直接看这个) 2021 最新Android知识体系 1.2按内容划分 1.3按阶段划分 1.4Android进阶路线(思维导图) ...

  4. 灵魂拷问!原生Android开发的路该怎么走?内含福利

    一些感悟 穷人的一次失败,为了还债可能一辈子都翻不了身,为还债一辈子送外卖.你将不再会有精力去思考和投机.穷人的失败可能断送了他所有暴富的机遇和时间,让不确定的人生瞬间确定下来,让充满无限可能的人生可 ...

  5. android混淆!原生Android开发的路该怎么走?技术详细介绍

    缘起 经过近十年的发展,Android技术优化日新月异,如今Android 10.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS.到了各大厂商手里,改源码.自定义系统, ...

  6. Android开发之路之 webview

    公众号: 欢迎关注我的个人公众号,来一起交流Android 开发知识 一.简介 本来不想专门找一节来介绍webview技术的,因为现在对于混合开发有很多的框架比如RN和FLutter,但是这些框架对于 ...

  7. android开发论坛!原生Android开发的路该怎么走?系列篇

    前阵子,我和阿里的薪酬福利专家M同学聊了一下午,M同学做了9年薪酬,和我们吐槽了很多薪酬方面的现象,也道出了少有人关注的薪酬逻辑和常识. 这一次,我又找了一位阿里技术岗位的招聘专家T同学,从他的视角中 ...

  8. 互联网寒冬下,原生Android开发的路该怎么走

    移动寒冬 18年的冬真冷,大家都在说裁员,其实裁员一直都在,只是18年的确多点.android 10年了,已经积累了太多的技术,知识点,技巧,思路,这些前人都会了,并且正在创造新的思路出来,对于广大的 ...

  9. 天梯赛-练习集L1-006 连续因子 (20分)【orz小辣鸡第一次写题解

    一个正整数 N 的因子中可能存在若干连续的数字.例如 630 可以分解为 3×5×6×7,其中 5.6.7 就是 3 个连续的数字.给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的 ...

最新文章

  1. 实战:OpenVINO+OpenCV 文本检测与识别
  2. win10前面板耳机没声音
  3. JPA学习(6)JPQL
  4. inrange函数 python_为什么OpenCV的inRange函数不将我的HSV图像转换成二进制?
  5. typec四线焊接图_实物图+电气图纸讲解:教你学会看配电系统图,不收藏,可惜了...
  6. Linux命令:和输出
  7. 笔记_SQLite入门
  8. php post 400,post数据时报错:远程服务器返回错误: (400) 错误的请求。
  9. 建立索引为什么能加快查询速度 【转】
  10. DataTable类(MSDN)
  11. android 时间
  12. Altium Designer 原理图输出为PDF文件
  13. Conda虚拟环境更新pip方法
  14. android 手机远程助手,安卓远程桌面软件
  15. C语言嵌入式系统编程修炼之道
  16. DC算法竞赛——员工离职预测
  17. UVC之MJPEG流
  18. 安装mysql staring server 一直停滞,乃至失败-已解决
  19. 云服务器-华为云服务器ECS挂载对象存储服务OBS教程
  20. h5根据手机尺寸调整字体大小

热门文章

  1. matlab课程数字图像处理设计题目,数字图像处理课程设计题目和要求_2013
  2. 进入MySQL的两种方法
  3. /dev/zero是什么(详解)
  4. _002_Eclipse中的add import与organize imports有什么区别
  5. mysql的CURDATE()+1,月末不生效问题
  6. Guitar Pro 7 中文版-中文版下载地址
  7. 小米6使用Charles进行HTTPS抓包
  8. 电脑键盘按1出现计算机,为什么我在电脑键盘上按数字0,就出现一窜中 – 手机爱问...
  9. 打开word文档提示文件未找到_打开CAD图纸或文档提示缺少SHX文件,2850种CAD字体大全资源分享...
  10. 51单片机串口通讯接收一串字符串