Android Намерение обрабатывать несколько идентичных действий в одной и той же деятельности - PullRequest
0 голосов
/ 23 марта 2020

Как и в Instagram, мне нужно отображать несколько вариантов, когда пользователь хочет поделиться картинкой с моим приложением. Мой код манифеста:

<activity android:name="com.myapp.android.ui.MainActivity"
        android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>

    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
        <data android:mimeType="video/*" />
    </intent-filter>
    <intent-filter android:label="@string/intent_chat">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
        <data android:mimeType="video/*" />
        <data android:mimeType="text/plain" />
    </intent-filter>
    <intent-filter android:label="@string/intent_chat">
        <action android:name="android.intent.action.SEND_MULTIPLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
        <data android:mimeType="video/*" />
    </intent-filter>


</activity>

Это правильно отображает 2 варианта для пользователя при попытке поделиться изображением или видео. Один помечен именем приложения, другой - @string/intent_chat. Проблема в том, что я не могу понять, как узнать, какой пользователь выбрал при обработке входящего Intent. Я попытался использовать метку, но не могу понять, как получить к ней доступ из Intent.

Другой вариант - сохранить один intent-filter, и в моей активности отобразить диалоговое окно, чтобы Пользователь указывает, что он хочет сделать. Однако это подразумевает дополнительный щелчок, которого я бы хотел избежать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...