获取Android设备中全部App
获取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相关推荐
- 通过adb巧用monkey获取android设备中所有应用的主activity
由于工作需要,想获取所有应用的activity(这里仅限应用的主入口Launcher activity),搜索了一下,网上实现的方案都是基于android编程实现的,对于不懂开发的测试来说稍有难度,而 ...
- android获取wifi连接状态,获取android设备wifi连接状态
本文将介绍如何获取android设备wifi连接状态! 添加访问权限(AndroidManifest.xml文件里) Java代码(MainActivity.java文件) package com.e ...
- android 摄像头参数,获取Android设备上的详细的摄像头信息
原标题:获取Android设备上的详细的摄像头信息 如何获取Android设备上的详细的摄像头信息呢? 目前Samsung的Galaxy Tab和Nexus S均有前置摄像头,获取Android摄像头 ...
- Android设备 D获取,如何获取Android设备名称(常用ADB命令介绍)
如何获取Android设备名称 sdk安装和配置 1.Android SDK 工具的安装,下载地址:https://www.androiddevtools.cn 2.环境变量配置 2.1:增加选项AN ...
- java 如何获取设备号_java – 如何获取android设备ID?
如何获取Android设备ID?我不知道什么是"背景". import android.content.Context; import android.provider.Setti ...
- 获取android设备唯一ID和用途
获取android设备唯一ID和用途 编者:李国帅 qq:9611153 微信lgs9611153 时间:2021/5/16 获取android设备唯一ID: 在android9及之前,我们还是可以获 ...
- ADB命令行卸载或删除你的Android设备中的应用
如果你对你的Android设备在与命令行的交互间有一定的兴趣,那你可能想学习一些使用ADB卸载设备中已安装应用的技巧.为了使这种方法生效,你将需要在你的电脑中设置好Android ADB.可以去看看关 ...
- 通过ADB命令行卸载或删除你的Android设备中的应用
对于通过ADB卸载一个应用程序,你必须知道这个应用程序的程序包名称,在这点上,你要注意的是,这未必是某应用的APK文件名字,比如Yahoo! Mail(雅虎邮箱)Android终端应用,它的程序包名称 ...
- Appium:获取Android设备手机屏幕分辨率
Appium:获取Android设备的手机屏幕分辨率 使用Appium获取手机屏幕分辨率 print(driver.get_window_size()) # {'width': 1080, 'heig ...
最新文章
- pip(pip3)安装依赖库失败
- 结对编程-Core 第12组 [pb15061359+pb15061351]
- [BZOJ] 1634: [Usaco2007 Jan]Protecting the Flowers 护花
- Linux环境安装JDK
- 如何修改Xshell默认存储路径
- JVM从入门到精通(二):详解Class加载过程,双亲委派机制,编译执行与解释执行
- consul java_springcloud使用consul作为配置中心
- JAVA MIDP_Java MIDP2.1和JAVA MIDP2.0的本质区别是什么啊?
- 测开之路二十二:迭代器、生成器
- Jmeter-【JSON Extractor】-响应结果中一级key取值
- paip.提升效率----更改数组LIST对象值for与FOREACH
- (全角→半角)把文字从PDF复制到Word,发现很宽但又不是多出空格?
- SolidWorks转3DMAX再到Unity3D的转换模型及单位设置
- 51nod 1076 2条不相交的路径 无向图强联通分量 trajan算法
- 如何解决Python 爬取网易云评论为[ ]的问题
- PowerVR SDK工具包21.1版新亮点一览,特别增加光线追踪代码示例
- 联想微型计算机怎么恢复系统,联想一体机系统还原的方法 联想一体机如何还原系统...
- umi hooks里的mutate使用方法
- Silverlight 2.5D RPG游戏技巧与特效处理:(十四)体感系统
- SQL——基础语句练习