Kush Patel
Kush Patel

Reputation: 1251

hide my application in intent chooser dialog when click on gmail notification in android

I want to see my application in Chooser dialog when I click any type of file or click on gmail attachment or share any file in my android device. So to achieve this functionality I used below intent filters.

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

But when I click on gmail notification App chooser Dialog opens and in that chooser I can see my application. And when I click on my application it gets crashed. As per my requirement my app shouldn't be displayed in that app chooser dialog when I click on that gmail notification.

I refered below links for that but didn't help me.

  1. Android: Registering Intent Filter to open email attachment with my app
  2. Android - Opening gmail attachment with my App
  3. Intent filter to download attachment from gmail apps on Android

Upvotes: 1

Views: 489

Answers (2)

Kush Patel
Kush Patel

Reputation: 1251

I found a solution for this. When you click on gmail notification then it's mime type is "application/gmail-ls". So exclude this mime type in your application. So remove <data android:mimeType="application/*" /> and specify whatever type you want to filter. (e.g. application/zip ,application/msword etc. )

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

Upvotes: 1

Abilash
Abilash

Reputation: 218

remove these two actions from <intent-filter>

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

Upvotes: 0

Related Questions