0

暗黙のインテントを使用してメイン アクティビティを呼び出そうとしています。私は意図的にアクションとカテゴリの両方を提供しますが、アクティビティの Android システムを開始する前に、アクティビティを開くために選択するアプリケーションのリストを提供します。

メインアクティビティを呼び出すために使用しているコードスニペットは次のとおりです。

protected void initiateActivity(int requestCode, String value, String oper) {
        Intent i = new Intent("android.intent.action.MAIN");
        i.addCategory("android.intent.category.LAUNCHER");
        i.putExtra("VALUE", value);
        i.putExtra("OPER", oper);
        startActivityForResult(i, requestCode);
    }

システム内のすべてのアプリが同じアクション、カテゴリのコンボを持つように思われるため、Android は選択するアプリのリストを提供しています。この問題が発生しないようにするには、メイン アクティビティにどのような変更を加えることができますか?

4

1 に答える 1

0

インテントフィルターで分離する必要があるようです。この投稿には良い説明があるようです:

<intent-filter> を使用して MAIN アクティビティを開始するにはどうすればよいですか?

以下のようなフィルターを追加することをお勧めします。そうしないと、ランチャーを呼び出すことになります。

<activity android:name=".MyActivity"
          android:configChanges="orientation|keyboardHidden"
          android:windowSoftInputMode="stateHidden"
          android:screenOrientation="portrait">
    <intent-filter>
          <action android:name="android.intent.action.MAIN"/>
          <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
          <action android:name="com.package.name.MyAction"/>
          <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>

于 2015-02-18T18:46:49.690 に答える