如何避免在意图过滤器中使用 */* 的 MIME 类型

8

AndroidDev

我有一个接受图片的Intent过滤器:

<intent-filter>
   <action android:name="android.intent.action.SEND_MULTIPLE"/>
   <category android:name="android.intent.category.DEFAULT"/>
   <data android:mimeType="image/*"/>
</intent-filter>

但是,即使mimetype是“* / *”,如果我选择图像和电影,则过滤器仍然会被卡住。

有没有什么方法可以让我的应用程序不被“* / *”调用?当然,我可以在启动我的应用程序后处理它,但这对我来说似乎很荒谬。我宁愿我的应用程序不在共享列表中。


1
你真的可以处理任何类型的图片吗?如果不能,为什么不仅指定你实际处理的每种类型,比如'image/png'等? - Nathan Schwermann
我正在使用UIL @chwiz,我不确定它确切地处理哪些类型。然而,我认为这在这里不会改变任何东西。 - MikeWallaceDev
1
我认为如果您不声明通配符,Android可能会更加严格。不过这只是猜测。 - Nathan Schwermann
我本来准备像@schwiz那样尝试一下,但现在我不认为这会起作用。我认为如果我明确声明“image/png”+“image/jpg”,然后用户尝试传递一个.png和一个.jpg,那么它将不起作用,因为类型将是“image/*”,而我不支持... 唉。 - MikeWallaceDev
@MikeWallaceDev 你解决了这个问题吗?在我的应用程序中,我支持图像和演示文稿,但不能同时支持。问题是当用户选择图像和演示文稿时,它会被传递为“* / *”,而我不想允许这种情况。 - mgR
抱歉,我没有。 - MikeWallaceDev
1个回答

0

很遗憾,我认为没有办法做到这一点。如果您需要同时拥有图像和电影,则需要使用/。如果您只想要多个图像或多个电影,则可以设置两个不同的意图过滤器,一个用于图像,另一个用于电影。


这实际上是一个错误情况,我不想要电影,但我的应用程序仍然可以被调用。 - MikeWallaceDev
为什么不通过编程方式检查类型并忽略电影文件呢? - Quanturium
2
因为允许电影共享到我的应用程序,但不显示它们对我来说是糟糕的用户体验。我希望我的应用程序不会出现在共享选项中。 - MikeWallaceDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接