我正在创建一个 android 应用程序,其中包含用户可以从其 android 手机菜单访问的所有应用程序的列表。这是我成功运行的代码..
List<App> apps = new ArrayList<App>();
// the package manager contains the information about all installed apps
PackageManager packageManager = getPackageManager();
List<PackageInfo> packs = packageManager.getInstalledPackages(0); //PackageManager.GET_META_DATA
for(int i=0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
ApplicationInfo a = p.applicationInfo;
// skip system apps if they shall not be included
if ((!includeSysApps) && ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) {
continue;
}
App app = new App();
app.setTitle(p.applicationInfo.loadLabel(packageManager).toString());
app.setPackageName(p.packageName);
app.setVersionName(p.versionName);
app.setVersionCode(p.versionCode);
CharSequence description = p.applicationInfo.loadDescription(packageManager);
app.setDescription(description != null ? description.toString() : "");
apps.add(app);
}
现在,这给了我一个大列表,我可以通过 3 种方式对其项目进行分类:
第一名(类似应用):Speed Moto、Subway Surf、Chrome(我安装了)
2nd (Apps like):相机、电子邮件、消息(默认安装)
第三(....喜欢):PageBuddyNotiSvc、Dialer Storage 等(一些软件包)
现在我想过滤第三种类型的应用程序并只想保留第一种和第二种类型..我怎样才能实现这个列表..