在android中单击gmail通知时,在intent意向选择器对话框中隐藏我的应用程序

时间:2017-01-12 06:23:51

标签: android android-intent android-notifications intentfilter android-intent-chooser

当我点击任何类型的文件或点击 gmail附件分享我的Android设备中的任何文件时,我想在Chooser对话框中看到我的应用程序。所以为了实现这个功能,我在下面使用了意图过滤器。

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

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。当您点击Gmail通知时,它的mime类型为"application/gmail-ls"。因此,在您的应用程序中排除此mime类型。因此,请删除<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>

答案 1 :(得分:0)

<intent-filter>

中删除这两项操作
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />