Как показать несколько вариантов обмена изображениями нашего приложения, как Facebook? - PullRequest
6 голосов
/ 17 апреля 2020

Я создаю приложение для социальных сетей, в котором пользователь может обмениваться изображениями, видео, Aud ios и c. Я успешно получил носители, которые делятся из стороннего приложения, добавив приведенный ниже код в файл манифеста.

<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 (установлена ​​как профиль pi c) для прямой загрузки изображения профиля. Смотрите скриншот

Like facebook multiple icons are shown

Кто-нибудь, пожалуйста, помогите мне показать несколько значков моего приложения, когда пользователь пытается поделиться изображением из своей галереи.

1 Ответ

5 голосов
/ 23 апреля 2020

Для предоставления пользовательских значков и меток в средстве выбора необходимо добавить параметры в фильтр намерений в манифесте. По умолчанию он использует значок и метку родителя.

Вы можете переопределить их следующим образом:

<?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>

Обратите внимание, что это пример приложения, в котором нет логики c или значения.

Надеюсь, это поможет:)

...