2014-06-06 54 views
-4

下面的代码是用来发射的Facebook启动雅虎邮箱:从另一个应用程序

Intent intent = new Intent("android.intent.category.LAUNCHER"); 
intent.setClassName("com.facebook.katana", "com.facebook.katana.LoginActivity"); 
startActivity(intent); 

我试图完成对雅虎邮件应用程序相同。

任何想法需要在Intent和setClassName语句中使用哪些名称?

感谢

+1

[http://stackoverflow.com/questions/3935009/how-to-open-gmail-compose-when-a-button-is-clicked-in-android-app](http://stackoverflow.com/questions/3935009/how-to-open-gmail-compose-when-a-button-is-in-in-android-app) –

回答

2

您可以使用PackageManager.getLaunchIntentForPackage(packageName)检索与启动应用程序相关的Intent

PackageManager packageManager = getPackageManager(); // from any Context 
Intent intent = packageManager.getLaunchIntentForPackage(
    "com.yahoo.mobile.client.android.mail"); 

这有持续的,即使他们更新使用不同的主要活动的应用程序工作的效益。

+0

这是个好主意。我只是想回答确切的问题。 :) – matiash

+0

Hannibal,查找packageName的来源是什么:“com.yahoo.mobile.client.android.mail” – Richard

+0

@Richard - 您可以通过查看[Google Play Store中的id字段来查看包名称URL](https://play.google.com/store/apps/details?id=com.yahoo.mobile.client.android.mail)您想要打开的应用程序。 – ianhanniballake

1

尝试:

intent.setClassName("com.yahoo.mobile.client.android.mail", 
    "com.yahoo.mobile.client.android.mail.activity.MainActivity"); 

(动作始终是相同的)。

您可以从APK的清单中读取这些信息。

+0

谢谢你的回答。我如何到达APK清单? – Richard

+0

首先获取apk(例如http://apps.evozi.com/apk-downloader/),然后使用apktool来解码它。 – matiash

+0

感谢matiash, – Richard