在我的應用程序中,我想顯示特定Android手機上每個可用啓動器(用於主屏幕)的列表。是否有可能從Android操作系統獲得某種信息,以及如何進行此調用?獲取Android中每個啓動器的列表
謝謝!
親切的問候 丹尼爾
在我的應用程序中,我想顯示特定Android手機上每個可用啓動器(用於主屏幕)的列表。是否有可能從Android操作系統獲得某種信息,以及如何進行此調用?獲取Android中每個啓動器的列表
謝謝!
親切的問候 丹尼爾
嘗試以下操作:
獲取安裝的應用程序列表:
列表pkgList = getPackageManager()getInstalledPackages(PackageManager.GET_ACTIVITIES);
遍歷該列表,並使用獲得發射活動:
getPackageManager()getLaunchIntentForPackage(的packageName);
詳情請閱讀此處:PackageManager。希望這可以幫助。
您可以查詢與特定意圖匹配的ResolverInfo列表。下一段代碼打印所有已安裝的啓動器。
PackageManager pm = getPackageManager();
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
for (ResolveInfo resolveInfo : lst) {
Log.d("Test", "New Launcher Found: " + resolveInfo.activityInfo.packageName);
}
** 1。**您應該檢查'(!lst.isEmpty())',參見[關閉。參考](http://developer.android.com/reference/android/content/pm/PackageManager.html)。 ** 2。**您的回答比@ Flavio更好,請參閱註釋 – 2013-08-14 03:44:08
對於** Intent類別**,而不是硬編碼字符串,也對** Intent行爲**和'Intent.CATEGORY_HOME'使用'Intent.ACTION_MAIN'。 – electrocrat 2015-06-04 05:02:37
isEmpty()檢查在這裏是無用的,對於每個 – JacksOnF1re 2015-06-18 09:43:33
IIUC,'getLaunchIntentForPackage(..)'將返回您爲任何應用程序啓動Intent,而不僅僅是啓動器。例如。 「設置」和「媒體播放器」應用程序也有啓動意圖 – 2013-08-09 07:43:12