2014年01月20日

[Android] デフォルトで起動するアプリの判定

デフォルトで起動するように設定されているホームアプリの取得方法を調べてみました。
PackageManagerから簡単に習得できるんじゃないかと考えて、適当にクラスを眺めていましたが、見つからないので結局コードを追いかけることに…。

どうやらgetPreferredActivities()というメソッドを使えば良いようです。
String defaultHomeApp = "";

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);

PackageManager pm = getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
for (ResolveInfo info : list) {
List<IntentFilter> filters = new ArrayList<IntentFilter>();
List<ComponentName> activities = new ArrayList<ComponentName>();
pm.getPreferredActivities(filters, activities, info.activityInfo.packageName);
if (activities.size() > 0) {
defaultHomeApp = activities.get(0).toString();
break;
}
}
Log.d("LOG", "Home app : " + defaultHomeApp);



posted by t2low at 23:00| Android