![](/img/trans.png)
[英]ActivityInfo[] is null for PackageManager.getInstalledPackages()
[英]packageManager.getInstalledPackages(0) doesn't return all apps
我正在使用
PackageManager packageManager = getPackageManager();
List<PackageInfo> mApps = packageManager.getInstalledPackages(0);
檢索所有已安裝應用程序的列表。 但是,該列表並不包含所有已安裝的應用程序,某些應用程序(例如Twitter)丟失了。
為了測試這一點,我正在使用
int length = mApps.size();
for(int i=0; i<length; i++){
PackageInfo info = mApps.get(i);
Log.i(TAG, "Package: " + info.packageName);
}
com.twitter.android
等不在記錄的字符串中,即使它們已安裝在手機上也是如此。
PS:我也嘗試過
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> mApps = getPackageManager().queryIntentActivities(mainIntent, 0);
其中顯示了Twitter,但(顯然)不會返回無法通過啟動器啟動的進程,例如“下載管理器”或“系統UI”。 我需要一種可靠地返回系統應用程序和第三方應用程序的方法。
這是由我這一邊的錯誤引起的(在滿足特定條件后錯誤地退出了for
循環),因此與PackageManager本身或我調用它的方式沒有任何關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.