5

同じアプリケーション内でアクティビティを起動し、別のアプリケーション (ネイティブ アプリケーションではなく、他のアプリケーション) のアクティビティを起動するために暗黙的インテントを使用しようとしていますが、いずれの場合も成功しませんでした。

最初の部分 (つまり、同じアプリケーション内でアクティビティを起動する) のサンプル コードを次に示します。

Inside Activity TESTActivity

Intent intent = new Intent();
intent.setAction("com.myapp.game.myimplicit_action");
startActivity(intent);

そして、同じアクションで「ImplicitActivity」と言うアクティビティのマニフェストファイル宣言を次に示します。

<activity
   android:name=".TESTActivity"
   android:label="@string/app_name" >
   <intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

<activity  android:name=".ImplicitActivity">
   <intent-filter>
   <action android:name="com.myapp.test.myimplicit_action" />
   </intent-filter>
</activity>

両方の活動はTESTActivityImplicitActivity同じパッケージの下の同じアプリケーションにあります。それでも私のImplicitActivityアクティビティは呼び出されません。

4

1 に答える 1

14

私は問題を理解しました。同じ問題に直面している他の人への回答を投稿します。

暗黙的インテントを機能させるには、デフォルト カテゴリを追加する必要があります。したがって、同じアクティビティの正しいマニフェスト エントリは次のとおりです。

<activity
   android:name=".TESTActivity"
   android:label="@string/app_name" >
   <intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

<activity  android:name=".ImplicitActivity">
   <intent-filter>
   <action android:name="com.myapp.test.myimplicit_action" />
   <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
</activity>
于 2012-05-01T06:43:53.623 に答える