2

我正在使用

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”。我需要一种可靠地返回系统应用程序和第三方应用程序的方法。

4

1 回答 1

1

这是由我这边的错误引起的(for在满足特定条件后错误地跳出 -loop),因此与 PackageManager 本身或我调用它的方式没有任何关系。

于 2013-09-03T23:39:21.497 回答