2012-12-06 141 views
2

我想寫如下開始了Android STK活動的應用程序:如何從其他應用程序啓動Android活動?

  Intent intent = new Intent(); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      intent.addCategory(Intent.CATEGORY_LAUNCHER); 
      intent.setAction(Intent.ACTION_MAIN); 
      intent.setComponent(new ComponentName("com.android.stk", "com.android.stk.StkLauncherActivity")); 
      startActivity(intent); 

我不斷收到以下錯誤:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.stk/com.android.stk.StkLauncherActivity}; have you declared this activity in your AndroidManifest.xml? 

我宣佈我的清單如下:

<activity android:name="com.android.stk.StkLauncherActivity"/> 
+0

只是比較:'intent.setComponent(new ComponentName(「com.android.stk」,「com.android.stk.StkLauncherActivity」));'和'... {com.android。 stk/com.android.stk2.StkLauncherActivity} ...'...你看到** stk2 **,因爲我看到了... – Selvin

+0

是的,這是一個錯字,stk也不起作用。 – Yusufk

回答

1

貌似就在你身邊一個錯字

com.android.stk/com.android.stk2.StkLauncherActivity 

stk or stk2? :)

+0

stk - 那不應該在帖子 – Yusufk

0

要從其他應用程序啓動活動,可以在活動所屬的應用程序的Android清單的活動意圖過濾器中設置「操作」。並且在啓動時將相同的「操作」設置爲意圖

+0

你有這樣一個例子嗎? – Yusufk

+0

例如,在要調用的Avtivity中,將Android Manifest中的Intent filter設置爲 現在,當通過Intent啓動活動時,將Intent的動作設置爲」com.example.nargis.action.MYACTIVITY「,這應該工作 – Nargis

4

嘗試使用PackageManager.getLaunchIntentForPackage其返回的意圖,在給定的包推出正門活動:

PackageManager manager = getPackageManager(); 
    Intent intent =manager.getLaunchIntentForPackage("com.android.stk"); 
    if (intent != null) 
    startActivity(intent); 
+0

試一下,我確定這將工作,如果你傳遞正確的PackageName –

+0

意圖是空的......我敢肯定PackageName是正確的。 – Yusufk

+1

@Yusufk然後看到這裏,當它返回NULL http://developer.android.com/reference/android/content/pm/PackageManager.html#getLaunchIntentForPackage%28java.lang.String%29 –

0

試試這個下面的代碼片段

final Intent intent = new Intent(Intent.ACTION_MAIN, null); 

intent.addCategory(Intent.CATEGORY_LAUNCHER); 
final ComponentName cn = new ComponentName("com.abc.xyz", "com.abc.xyz.MainActivity"); 
intent.setComponent(cn); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

更多詳細信息Follow this Link

+0

不,與我原來的代碼相同的行爲不幸。 – Yusufk

相關問題