2014-04-04 52 views
0

我用下面的代碼使用包名稱查找應用程序標籤。getApplicationLabel返回不正確的標籤

mPackageManager.getApplicationLabel(mPackageManager 
       .getApplicationInfo("com.android.vending", 
         PackageManager.GET_META_DATA)); 

「com.android.vending」是Play商店應用的包名稱。此代碼返回「Google Play商店」,而設備上的標籤顯示「Play商店」。所有Google應用都會發生這種情況。

回答

1

此代碼返回「谷歌Play商店」,而在設備顯示標籤「Play商店」。

這取決於你在哪裏尋找這個標籤。設備上的應用程序標籤主要用於設置應用程序中已安裝應用程序的列表中。在Nexus 4上,Play商店顯示爲「Google Play商店」。

「Play商店」,相比之下,似乎搞什麼啓動器圖標。這是因爲啓動器圖標標籤不一定與應用程序標籤相同。啓動器圖標標籤來自與該啓動器圖標相關聯的活動。雖然默認情況下活動的標籤與應用程序的標籤相同,但歡迎開發人員將這些標籤分開。谷歌顯然已經這樣做了。

+0

感謝詳細的解答。有沒有什麼辦法通過編程來查找啓動器圖標標籤? –

+3

@SorryBoss:一個應用程序可能在發射零個,一個或幾個活動。如果你只想要一個「最佳」發射器,對'PackageManager'使用'getLaunchIntentForPackage()'。要查找所有這些活動,請在'PackageManager'上使用'queryIntentActivities()'。從那裏,你可以在'ActivityInfo'或'ResolveInfo'上調用'loadLabel()'。 – CommonsWare