2014-06-06 82 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