概述
有一个需求获取本地指定的系统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<AppInfo> scanInstallApp(PackageManager packageManager,int filterType) {
List<AppInfo> myAppInfos = new ArrayList<AppInfo>();
List<AppInfo> mFilterApps = new ArrayList<AppInfo>();
try {
List<PackageInfo> 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;
}
由于内容很简单,就不上其他源码了。
最后
以上就是想人陪薯片为你收集整理的Android 获取本地已安装的应用程序的全部内容,希望文章能够帮你解决Android 获取本地已安装的应用程序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复