packageManager.getInstalledPackages(0)不返回所有应用程序

时间:2013-08-28 20:41:55

标签: android android-package-managers

我正在使用

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和其他人不在记录的字符串中,即使它们已安装在手机上。

P.S。:我也试过

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> mApps = getPackageManager().queryIntentActivities(mainIntent, 0);

显示Twitter,但(显然)不会返回无法通过启动器启动的进程,例如“下载管理器”或“系统UI”。我需要一种能够可靠地返回系统应用和第三方应用的方法。

1 个答案:

答案 0 :(得分:1)

这是由于我身边的错误(在满足某个条件后错误地突破for - 循环)引起的,因此与PackageManager本身或我的方式没有任何关系正在呼唤它。