当我点击任何类型的文件或点击 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通知时,我的应用程序不应显示在该应用程序选择器对话框中。
我在下面提到了链接,但没有帮助我。
答案 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" />