2012-11-01 21 views
0

我需要知道幾個默認Android應用程序的規範名稱,例如電子郵件,聯繫人&等。我希望能夠使用他們的規範名稱來啓動它們。如何獲得Android中deafult應用程序包的規範名稱

Intent i = new Intent("com.pacakge.canonicalname"); 

因此,任何想法,我能得到的默認Android應用規範包名稱的列表?

感謝

回答

1

有一個在PackageManager類稱爲currentToCanonicalPackageNames(字符串[]名稱),我懷疑可能被用來做什麼你問的方法。因此,像:

String[] names = {"Email","Contacts"}; 
try{ 
    String[] canonicalNames = context.getPackageManager().currentToCanonicalPackageNames(names); 

    //do whatever you want with canonicalNames, e.g. launch the email app, 
    Intent email = context.getPackageManager().getLaunchIntentForPackage(canonicalNames[0]); 
    context.startActivity(email); 

}catch(NameNotFoundException e){ 
    Log.d("MY ACTIVITY NAME", "Package name(s) not found."); 
} 

我尋找到做這樣的自己的事情,但沒試過這個代碼,所以請謹慎使用。

編輯: 所以今天晚上試了一下,解決方案可能不是你要找的。假設您只從這些應用程序的顯示名稱開始(技術上稱爲應用程序標籤),則您可能必須實際瀏覽設備上安裝的所有應用程序,以查找該應用程序標籤。我只是將我的解決方案發布到我的博客,所以take a look

相關問題