2011-11-23 101 views
6

我想創建一個在Android主屏幕上看到的應用程序列表。如何獲取在Android主屏幕上看到的應用程序的名稱?

目前我使用下面的代碼:

List<ApplicationInfo> packs = pm.getInstalledApplications(0); 

但這返回所有安裝的應用程序,但我只需要具有主屏幕上的圖標的應用程序。

這怎麼辦?

任何幫助表示讚賞。

+1

您是否打算容納非標準啓動器的用戶?小心Sense和TouchWiz在很多手機上都是標準配置。 – Emyr

+0

「主屏幕」不是Android中的標準概念。正如@Emyr所說,很多人都在使用不同的發射器替代品,所以他們的主屏幕與「股票」不一樣。每個啓動器都有自己的方式來存儲主屏幕上顯示的內容。 – Guillaume

回答

0

現在您已經獲得了設備上安裝的軟件包列表,請遍歷它們並在每個項目上調用getLaunchIntentForPackage()

如果返回了有效的意圖,它就存在於啓動器上,否則如果返回null,則包不會從啓動器屏幕啓動。請注意,主屏幕快捷鍵是啓動器應用程序的一個子集。

+0

謝謝。我也這樣做了。但是它在一些軟件包上給出了一個系統例外。這怎麼解決? – Sandeep

+1

Document說它將返回可用於啓動主要活動的Intent。所以通常所有的應用程序都有1個啓動器。所以我不認爲這會工作........你有沒有試過這個? –

+0

@Shail它返回'CATEGORY_LAUNCHER'的意圖。如果有任何活動屬於''它們將在啓動器上可見。 ' – Reno

相關問題