【发布时间】:2017-03-22 22:52:09
【问题描述】:
我想在 Android L 中获取所有默认应用程序。我使用了以下代码,但它们给了我错误的解决方案。先看看我的代码
private void getMyAppLauncherDefault() {
final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
filter.addCategory(Intent.CATEGORY_HOME);
List<IntentFilter> filters = new ArrayList<IntentFilter>();
filters.add(filter);
List<ComponentName> activities = new ArrayList<ComponentName>();
final PackageManager packageManager = (PackageManager) getPackageManager();
packageManager.getPreferredActivities(filters, activities, null);
for (ComponentName activity : activities) {
Log.d(TAG,"======packet default:==="+activity.getPackageName());
}
}
这是日志。日志显示com.google.android.googlequicksearchbox 和com.vlingo.midas 之间的错误结果。它们都是语音应用程序,但我将com.google.android.googlequicksearchbox 设置为默认值。我不知道为什么日志显示com.vlingo.midas。我该如何解决?谢谢
16:02:44.817 /com.exam D/Sample: ======packet default:===com.sec.android.gallery3d
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms
16:02:44.827 /com.exam D/Sample: ======packet default:===com.vlingo.midas
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.app.sbrowser
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.gallery3d
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.app.launcher
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.app.sbrowser
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms
16:02:44.827 /com.exam D/Sample: ======packet default:===com.google.android.googlequicksearchbox
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.app.sbrowser
16:02:44.827 /com.exam D/Sample: ======packet default:===com.sec.android.gallery3d
16:02:44.827 /com.exam D/Sample: ======packet default:===com.android.mms
16:02:44.827 /com.exam D/Sample: ======packet default:===com.google.android.apps.plus
【问题讨论】:
-
com.vlingo.midas很可能支持一个额外的过滤器,它会显示出来。使用包名称打印相应的过滤器以检查这一点。 -
@F43nd1r:我们如何打印它?
filter大小仅为 1,而filters大小为 4。但我无法打印过滤器的名称 -
可能是 com.vlingo.midas 是针对不同目的/应用的默认设置。
标签: android android-intent android-5.0-lollipop android-package-managers