博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 获取本地已安装的应用程序
阅读量:6588 次
发布时间:2019-06-24

本文共 2261 字,大约阅读时间需要 7 分钟。

hot3.png

有一个需求获取本地指定的系统App和已经下载的App列表:

实现非常简单,首先获取本机已安装的App,然后把我们指定的系统App过滤掉,存入一个List集合中,然后把其他的系统App过滤掉,剩下的在放入,另外一个List集合中,组合就Ok。

贴下主要代码:

/** * Created by Xiho on 12:10 * MyBlog: xuhao.tech * GitHub: github.com/git-xuhao * Function: */public class AppUtils {    public static final String PACKAGE_OTA="com.sunmi.ota";    public static final String PACKAGE_MARKET="woyou.market";    public static final String PACKAGE_HARD_WARE_KEEPER="com.woyou.hardwarekeeper";    public static final String PACKAGE_UDH="com.woyou.udh";    public static final String PACKAGE_SETTING="com.android.settings";    /**     * 过滤自定义的App和已下载的App     * @param packageManager     * @return     */    public static List
scanInstallApp(PackageManager packageManager,int filterType) { List
myAppInfos = new ArrayList
(); List
mFilterApps = new ArrayList
(); try { List
packageInfos = packageManager.getInstalledPackages(0); for (int i = 0; i < packageInfos.size(); i++) { PackageInfo packageInfo = packageInfos.get(i); //过滤指定的app String tempPackageName=packageInfo.packageName; if(tempPackageName.equals(PACKAGE_OTA)||tempPackageName.equals(PACKAGE_MARKET)||tempPackageName.equals(PACKAGE_HARD_WARE_KEEPER) ||tempPackageName.equals(PACKAGE_UDH)||tempPackageName.equals(PACKAGE_SETTING)){ AppInfo appInfo = new AppInfo(); appInfo.setAppName((String) packageInfo.applicationInfo.loadLabel(packageManager)); if (packageInfo.applicationInfo.loadIcon(packageManager) == null) { continue; } appInfo.setAppIcon(packageInfo.applicationInfo.loadIcon(packageManager)); mFilterApps.add(appInfo); continue; } //过滤掉系统app if ((ApplicationInfo.FLAG_SYSTEM & packageInfo.applicationInfo.flags) != 0) { continue; } AppInfo appInfo = new AppInfo(); appInfo.setAppName((String) packageInfo.applicationInfo.loadLabel(packageManager)); if (packageInfo.applicationInfo.loadIcon(packageManager) == null) { continue; } appInfo.setAppIcon(packageInfo.applicationInfo.loadIcon(packageManager)); myAppInfos.add(appInfo); } myAppInfos.addAll(mFilterApps); } catch (Exception e) { e.printStackTrace(); } return myAppInfos; }
由于内容很简单,就不上其他源码了。

转载于:https://my.oschina.net/xuhaozi/blog/780417

你可能感兴趣的文章
如何在思科虚拟PC机信息进行修改
查看>>
input 下面的span 标签 作为下拉框选项的点击
查看>>
lucene001
查看>>
1985—1990年《ISTP》收录的世界主要国家(地区)科技会议论文情况
查看>>
雨后清风教你如何在Windows 10上禁用笔记本电脑触摸板
查看>>
一名网工对Linux运维的一次经历
查看>>
10 行代码解决漏斗转换计算之性能优化
查看>>
ssh远程登录命令
查看>>
工程师论文如何发表
查看>>
javascript基础语法——变量和标识符
查看>>
服务器遭受***后的处理过程
查看>>
apache 和Tomcat的区别
查看>>
学习iptables
查看>>
阿里云linux主机更新hostname
查看>>
awk 累加
查看>>
LAMP编译安装
查看>>
如何写出高质量的shell脚本---------值得注意的地方
查看>>
我的友情链接
查看>>
修复MBR扇区故障
查看>>
mysqlbinlog: unknown variable 'default-character-s
查看>>