6

我正在创建一个社交媒体应用程序,用户可以在其中共享图像、视频、音频等。通过在清单文件中添加以下代码,我成功地接收了从第三方应用程序共享的媒体。

<activity
        android:name=".activity.SendToActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="*/*" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.SEND_MULTIPLE" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="*/*" />
        </intent-filter>
    </activity>

现在,当用户尝试从他们的画廊(例如 facebook(设置为个人资料图片)共享个人资料图片)直接上传个人资料图片时,我想显示我的应用程序的多个图标。请看截图

像facebook一样显示多个图标

当用户尝试从他们的图库中共享图像时,请有人帮助我显示我的应用程序的多个图标。

4

1 回答 1

5

要在选择器上提供自定义图标和标签,您需要将参数添加到清单上的意图过滤器。默认情况下,它使用父级的图标和标签。

您可以按如下方式覆盖它们:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter
            android:icon="@drawable/ic_profile_icon" <!-- Custom icon -->
            android:label="Set as profile"> <!-- Custom label -->
            <action android:name="android.intent.action.SEND" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="*/*" />
        </intent-filter>

        <intent-filter
            android:icon="@drawable/ic_story_icon" <!-- Custom icon -->
            android:label="Share as story"> <!-- Custom label -->
            <action android:name="android.intent.action.SEND" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="*/*" />
        </intent-filter>
    </activity>
</application>

</manifest>

请注意,这是一个不包含任何逻辑或价值的示例应用程序。

希望能帮助到你 :)

于 2020-04-23T12:48:55.407 回答