获取android设备中全部app名称和应用包名

/*** 获取android设备中全部app名称和应用包名* */public void getAllAppNames(){ArrayList customApps = new ArrayList<PackageInfo>(); // 普通应用程序列表ArrayList systemApps = new ArrayList<PackageInfo>(); // 系统应用程序列表// 得到PackageManager对象PackageManager pm=getPackageManager();获取到所有安装了的应用程序的信息,包括那些卸载了的,但没有清除数据的应用程序List<PackageInfo> appList=pm.getInstalledPackages(PackageManager.MATCH_UNINSTALLED_PACKAGES);int j=0;for (PackageInfo packageInfo : appList) {// 列出普通应用if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) {customApps.add(packageInfo);}// 列出系统应用,总是感觉这里设计的有问题,希望高手指点if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) > 0) {systemApps.add(packageInfo);}//得到手机上已经安装的应用的名字,即在AndriodMainfest.xml中的app_name。String appName=packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();//得到手机上已经安装的应用的图标,即在AndriodMainfest.xml中的icon。Drawable drawable = packageInfo.applicationInfo.loadIcon(getPackageManager());//得到应用所在包的名字,即在AndriodMainfest.xml中的package的值。String packageName=packageInfo.packageName;Log.e("=======aaa", "应用的名字:"+appName);Log.e("=======bbbb", "应用的包名字:"+packageName);// 禁用// pm.setApplicationEnabledSetting(packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);j++;}Log.e("========cccccc", "应用的总个数:"+j);Log.e("========eeeeee", "普通应用总个数:"+customApps.size());Log.e("========dddddd", "系统应用总个数:"+systemApps.size());}

权限:

 <uses-permission android:name="android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE"android:protectionLevel="signatureOrSystem"/>

对App进行操作

 /**** 不可用状态:COMPONENT_ENABLED_STATE_DISABLED* 可用状态:COMPONENT_ENABLED_STATE_ENABLED* 默认状态:COMPONENT_ENABLED_STATE_DEFAULT** */private void hidenApp(){PackageManager packageManager = getPackageManager();ComponentName componentName = new ComponentName(this, MainActivity.class);int res = packageManager.getComponentEnabledSetting(componentName);if (res == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT|| res == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {// 隐藏应用图标packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);}}/**** 不可用状态:COMPONENT_ENABLED_STATE_DISABLED* 可用状态:COMPONENT_ENABLED_STATE_ENABLED* 默认状态:COMPONENT_ENABLED_STATE_DEFAULT** */private void showApp(){PackageManager packageManager = getPackageManager();ComponentName componentName = new ComponentName(this, MainActivity.class);int res = packageManager.getComponentEnabledSetting(componentName);if (res == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {// 显示应用图标packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP);}}

获取Android设备中全部App相关推荐

  1. 通过adb巧用monkey获取android设备中所有应用的主activity

    由于工作需要,想获取所有应用的activity(这里仅限应用的主入口Launcher activity),搜索了一下,网上实现的方案都是基于android编程实现的,对于不懂开发的测试来说稍有难度,而 ...

  2. android获取wifi连接状态,获取android设备wifi连接状态

    本文将介绍如何获取android设备wifi连接状态! 添加访问权限(AndroidManifest.xml文件里) Java代码(MainActivity.java文件) package com.e ...

  3. android 摄像头参数,获取Android设备上的详细的摄像头信息

    原标题:获取Android设备上的详细的摄像头信息 如何获取Android设备上的详细的摄像头信息呢? 目前Samsung的Galaxy Tab和Nexus S均有前置摄像头,获取Android摄像头 ...

  4. Android设备 D获取,如何获取Android设备名称(常用ADB命令介绍)

    如何获取Android设备名称 sdk安装和配置 1.Android SDK 工具的安装,下载地址:https://www.androiddevtools.cn 2.环境变量配置 2.1:增加选项AN ...

  5. java 如何获取设备号_java – 如何获取android设备ID?

    如何获取Android设备ID?我不知道什么是"背景". import android.content.Context; import android.provider.Setti ...

  6. 获取android设备唯一ID和用途

    获取android设备唯一ID和用途 编者:李国帅 qq:9611153 微信lgs9611153 时间:2021/5/16 获取android设备唯一ID: 在android9及之前,我们还是可以获 ...

  7. ADB命令行卸载或删除你的Android设备中的应用

    如果你对你的Android设备在与命令行的交互间有一定的兴趣,那你可能想学习一些使用ADB卸载设备中已安装应用的技巧.为了使这种方法生效,你将需要在你的电脑中设置好Android ADB.可以去看看关 ...

  8. 通过ADB命令行卸载或删除你的Android设备中的应用

    对于通过ADB卸载一个应用程序,你必须知道这个应用程序的程序包名称,在这点上,你要注意的是,这未必是某应用的APK文件名字,比如Yahoo! Mail(雅虎邮箱)Android终端应用,它的程序包名称 ...

  9. Appium:获取Android设备手机屏幕分辨率

    Appium:获取Android设备的手机屏幕分辨率 使用Appium获取手机屏幕分辨率 print(driver.get_window_size()) # {'width': 1080, 'heig ...

最新文章

  1. pip(pip3)安装依赖库失败
  2. 结对编程-Core 第12组 [pb15061359+pb15061351]
  3. [BZOJ] 1634: [Usaco2007 Jan]Protecting the Flowers 护花
  4. Linux环境安装JDK
  5. 如何修改Xshell默认存储路径
  6. JVM从入门到精通(二):详解Class加载过程,双亲委派机制,编译执行与解释执行
  7. consul java_springcloud使用consul作为配置中心
  8. JAVA MIDP_Java MIDP2.1和JAVA MIDP2.0的本质区别是什么啊?
  9. 测开之路二十二:迭代器、生成器
  10. Jmeter-【JSON Extractor】-响应结果中一级key取值
  11. paip.提升效率----更改数组LIST对象值for与FOREACH
  12. (全角→半角)把文字从PDF复制到Word,发现很宽但又不是多出空格?
  13. SolidWorks转3DMAX再到Unity3D的转换模型及单位设置
  14. 51nod 1076 2条不相交的路径 无向图强联通分量 trajan算法
  15. 如何解决Python 爬取网易云评论为[ ]的问题
  16. PowerVR SDK工具包21.1版新亮点一览,特别增加光线追踪代码示例
  17. 联想微型计算机怎么恢复系统,联想一体机系统还原的方法 联想一体机如何还原系统...
  18. umi hooks里的mutate使用方法
  19. Silverlight 2.5D RPG游戏技巧与特效处理:(十四)体感系统
  20. SQL——基础语句练习

热门文章

  1. 开源的成语答题小程序运营总结
  2. Qt对话框图片Debug下可显示,release下不可显示的解决办法
  3. apache windows .msi 安装版下载
  4. 洛谷P1603 斯诺登的密码
  5. 原来ES7~12分别增加了这些属性呀
  6. 超级简单进销存-立项
  7. 永磁同步电机的矢量控制策略(十一)一一一弱磁控制
  8. 做网站需要多少钱?由企业需求而定!
  9. 使用angularJs实现tab切换
  10. [RK3399] 添加调试RTL8822cs驱动