单击android中的gmail通知时将我的应用程序隐藏在意图选择器对话框中
Posted
技术标签:
【中文标题】单击android中的gmail通知时将我的应用程序隐藏在意图选择器对话框中【英文标题】:hide my application in intent chooser dialog when click on gmail notification in android 【发布时间】:2017-05-27 03:49:11 【问题描述】:当我单击任何类型的文件或单击 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 通知 时,我的应用程序不应显示在该应用程序选择器对话框中。
我参考了下面的链接,但没有帮助我。
-
Android: Registering Intent Filter to open email attachment with my app
Android - Opening gmail attachment with my App
Intent filter to download attachment from gmail apps on Android
【问题讨论】:
能否请您说明如何触发 gmail 通知应用选择器对话框? give<data android:mimeType="application/*" />
触发 gmail 通知应用选择器对话框
【参考方案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>
【讨论】:
【参考方案2】:从<intent-filter>
中删除这两个动作
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
【讨论】:
问题已编辑。我也想在共享任何文件时看到我的应用程序。所以我无法删除此操作。 即使是分享你也不需要添加这些动作就知道了。如果您正在共享一个文件,那么您将打开相应的隐式意图来处理这种类型的文件。以上是关于单击android中的gmail通知时将我的应用程序隐藏在意图选择器对话框中的主要内容,如果未能解决你的问题,请参考以下文章
通过单击android studio中的按钮将我的当前位置发送给所有用户
Android - 点击时 Firebase 通知会打开一个 Activity