我想獲得所有出現在菜單屏幕上的應用程序。但是,現在我只獲取用戶安裝的應用程序或所有應用程序(包括系統應用程序)。如何在Android中獲取已安裝的應用程序並且沒有系統應用程序?
我當前的代碼是:
final PackageManager pm = getActivity().getPackageManager();
List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_META_DATA);
ArrayList<PackageInfo> aux = new ArrayList<PackageInfo>();
for (int i = 0; i < apps.size(); i++) {
if (apps.get(i).versionName != null && ((apps.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 1)) {
aux.add(apps.get(i));
}
有了這個代碼,我可以讓用戶安裝的應用程序,如果我評論的「如果」的指令,我會得到系統應用。
所以,我想獲得用戶安裝的應用程序和應用程序,如聯繫人,圖庫等。
UPDATE:
final PackageManager pm = getActivity().getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);
但接觸是系統的應用程序?請解釋一下差異。你想要什麼樣的應用程序列表? – Blundell
我想要列出所有出現在菜單屏幕中的應用程序。 – beni
但聯繫人出現在菜單屏幕中?即系統應用程序。也許另一個問題會有幫助。什麼特定的應用程序*不*你想要的? – Blundell