11

Android ギャラリーの [共有] ボタンにアプリを追加することに成功したので、クリックするとアプリが起動します。アプリのどのアクティビティを開始するかを選択できますか? これで「メイン」が開始されます。メインクラスのコードは次のとおりです。

    .....        
    Intent intent = getIntent();
    Bundle extras = intent.getExtras();
    String action = intent.getAction();

    // if this is from the share menu
    if (Intent.ACTION_SEND.equals(action)) {   
        if (extras.containsKey(Intent.EXTRA_STREAM)) {
            // Get resource path
        }
    }

そしてマニフェスト:

<intent-filter>
   <action android:name="android.intent.action.SEND" />
   <category android:name="android.intent.category.DEFAULT" />
   <data android:mimeType="image/*" />
</intent-filter>

実際には、「メイン」の開始直後に新しいアクティビティを開くことに成功しましたが、正しいアクティビティを直接開くことを好みます。ありがとう

4

2 に答える 2

26

マニフェストで開始したいアクティビティの下にインテント フィルターを配置します

 <activity android:name=".Theme"
           android:label="MAIN">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

 <activity android:name=".Theme"
           android:label="ActiVITY2">
  <intent-filter>
   <action android:name="android.intent.action.SEND" />
   <category android:name="android.intent.category.DEFAULT" />
   <data android:mimeType="image/*" />
  </intent-filter>
</activity>
于 2012-11-28T16:14:59.000 に答える
6

たとえば、マニフェスト ファイルに 2 つのアクティビティがある場合、次のようMainMediaShareなります。

<activity android:name="Main" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
<activity android:name="MediaShare" >
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>

android.intent.action.SENDアクションとデータはandroid:mimeType="image/*"、画像を共有するときに開始したいアクティビティと一致する必要があります。

詳細については、他のアプリからのコンテンツの受信に関するページを参照してください。

于 2012-11-28T16:23:34.870 に答える