1

当我单击任何类型的文件或单击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:注册意图过滤器以使用我的应用程序打开电子邮件附件
  2. Android - 使用我的应用程序打开 gmail 附件
  3. 从 Android 上的 gmail 应用程序下载附件的意图过滤器
4

2 回答 2

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>
于 2017-01-12T10:49:41.703 回答
0

删除这两个动作<intent-filter>

<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
于 2017-01-12T06:33:41.960 回答