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