Скрыть мое приложение в диалоговом окне выбора намерений при нажатии на уведомление Gmail в Android

Я хочу видеть свое приложение в диалоговом окне "Выбор", когда я щелкаю по файлу любого типа, щелкаю по вложению в gmail или делюсь любым файлом на моем устройстве Android. Поэтому для достижения этой функциональности я использовал фильтры намерений ниже.

<activity
            android:name=".activities.ShareWithAttachmentActivity"
            android:label="Adoddle"
            android:screenOrientation="sensorPortrait">
            <intent-filter>
                <!---->
                <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.SEND" />

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

                <!--<data android:mimeType="*/*" />-->
                <data android:mimeType="application/*" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="image/*" />
                <data android:mimeType="message/*" />
                <data android:mimeType="multipart/*" />
                <data android:mimeType="text/plain" />
                <data android:mimeType="text/html" />
                <data android:mimeType="text/javascript" />
                <data android:mimeType="text/richtext" />
                <data android:mimeType="text/uri-list" />
                <data android:mimeType="text/xml" />
                <data android:mimeType="text/css  " />
                <data android:mimeType="video/*" />
            </intent-filter>
        </activity>

Но когда я нажимаю на уведомление по gmail, открывается диалог выбора приложения, и в этом окне выбора я вижу свое приложение. И когда я нажимаю на свое приложение, оно падает. Согласно моему требованию, мое приложение не должно отображаться в диалоговом окне выбора приложения, когда я нажимаю на это уведомление Gmail.

Я ссылался ниже на ссылки для этого, но не помог мне.

  1. Android: регистрация Intent Filter для открытия вложения электронной почты с моим приложением
  2. Android - Открытие вложения Gmail с моим приложением
  3. Фильтр намерений для загрузки вложений из приложений Gmail на Android

2 ответа

Я нашел решение для этого. Когда вы нажимаете на уведомление Gmail, то это MIME тип "application/gmail-ls", Так что исключите этот тип пантомимы в вашем приложении. Так удали <data android:mimeType="application/*" /> и укажите любой тип, который вы хотите фильтровать. (например, application / zip,application / msword и т. д.)

<activity
            android:name=".activities.ShareWithAttachmentActivity"
            android:label="Adoddle"
            android:screenOrientation="sensorPortrait">
            <intent-filter>
                <!---->
                <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.SEND" />

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

<data
                    android:host="*"
                    android:mimeType="application/zip"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="application/vnd.ms-excel"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="application/msword"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="application/vnd.ms-powerpoint"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="application/pdf"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="audio/*"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="image/*"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="message/*"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="multipart/*"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="text/plain"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="text/html"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="text/javascript"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="text/richtext"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="text/uri-list"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="text/xml"
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="text/css  "
                    android:scheme="content" />
                <data
                    android:host="*"
                    android:mimeType="video/*"
                    android:scheme="content" />

            </intent-filter>
        </activity>

Удалить эти два действия из <intent-filter>

<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />