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

如果你的清单文件中有两个活动,比如说Main然后MediaShare它看起来像这样:

<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 回答