2010-08-06 93 views

回答

79

使用PackageManagergetLaunchIntentForPackage()

+1

謝謝,我錯過了這個功能,而在尋找PackageManager ...... – bart 2010-08-06 10:33:56

+0

先生爲什麼不能我通過獲取其包名的給予java.lang.NullPointer異常啓動啓動? – 2013-12-16 07:38:02

+0

是否啓動完整的新實例?我想推出現有的。我怎麼做? – JohnyTex 2014-04-14 08:44:26

116

只需使用這下面兩行,這樣你就可以推出其package name已知的任何安裝的應用程序嘗試:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.abc"); 
startActivity(LaunchIntent); 

如果你不知道應用的包名你想推出然後試試你的手

PackageManager pm; 
pm = getPackageManager(); 
// get a list of installed apps. 
packages = pm.getInstalledApplications(0); 

欲瞭解更多信息,請參閱此鏈接Using Package Manager

+2

+1其不錯的代碼 – 2013-05-21 09:05:58

+1

這是否會啓動一個完整的新實例?我想推出現有的。我怎麼做? – JohnyTex 2014-04-14 08:45:02

+0

@hohny TEX你找到你的問題 – 2015-05-06 09:35:52

12

你可以通過PackageManager類獲得的推出意圖:

PackageManager pm = context.getPackageManager(); 
Intent launchIntent = pm.getLaunchIntentForPackage("com.example.package"); 
context.startActivity(launchIntent); 

注意getLaunchIntentForPackage返回空值,如果沒有找到包。所以,你可能要添加一個空檢查:

if (launchIntent != null) { 
    context.startActivity(launchIntent); 
} else { 
    Toast.makeText(context, "Package not found", Toast.LENGTH_SHORT).show(); 
} 
+0

這個答案只是與舊答案略有不同,除了它是3年更新。我沒有看到upvotes是如何合理的。 – hBrent 2017-07-27 20:43:16

相關問題