[英]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.