0
我正在创建一个Android应用程序,该应用程序具有用户可以从其Android手机菜单访问的所有应用程序的列表。 这里是我的代码,成功的工作..Android getInstalledPackages
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个方面的项目进行分类:
1日(应用程序等):速度摩托,地铁冲浪,铬(我安装的)
2日(应用程序等):相机,电子邮件,聊天工具(默认安装)
3日(....等):PageBuddyNotiSvc,拨号储存等(一些包)
现在我要过滤的第三类型的应用程序,并希望只保留第一和第二型.. 我怎样才能实现这个名单..
先生,但这删除了第二cateogry应用程序(相机,电子邮件,消息等).. – void
没有办法将应用程序作为游戏或不。所有你可以实现的是它是默认的应用程序或第二方。或者你可以根据应用程序的权限进行分类。 – blganesh101