首页 > 解决方案 > 如何在 android sharesheet 中显示应用程序的多个活动?

问题描述

我应该能够在 android sharesheet 中显示我的应用程序的不同活动,如下所示的示例图像。

示例图片,instagram

我应该添加一个新活动吗?以及它是如何在 androidmanifest.xml 中配置的?

这是 androidmanifest.xml 的 MainActivity 部分,我在其中添加了接收文本和图像的意图。现在共享表中只显示一个图标。

        android:name=".MainActivity"
        android:launchMode="singleTask"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter android:label="@string/app_name">
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
          <action android:name="android.intent.action.SEND" />
          <category android:name="android.intent.category.DEFAULT" />
          <data android:mimeType="text/plain" />
        </intent-filter>
        <intent-filter android:label="@string/app_name">
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
          <action android:name="android.intent.action.SEND" />
          <category android:name="android.intent.category.DEFAULT" />
          <data android:mimeType="image/*" />
        </intent-filter>
      </activity> 

标签: androidshare

解决方案


您可以添加多个活动,并为每个活动添加一个意图过滤器。您可以添加标签属性<intent-filter>为每个活动提供自定义标签<intent-filter android:label="My Label 1">

<activity android:name=".BroadcastReceiverActivity1" >
    <intent-filter android:label="My Label 1">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="*/*" />
    </intent-filter>
</activity>

<activity android:name=".BroadcastReceiverActivity2" >
    <intent-filter android:label="My Label 2">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="*/*" />
    </intent-filter>
</activity>

推荐阅读