2010-08-06 61 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

相关问题