问题描述
- 为什么 android Messaging 应用被启动?
-
我查看android信息应用的源代码,manifest 文件中是这样的:<intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="image/*" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="video/*" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter>
但是在我的代码中,我是这样启动一个intent的:
Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.setType("*/*");
我能在弹出的对话框中看见 Messaging app 吗?
当我使用 / mimeType 类型启动一个ACTION_SEND intent时,为什么 android Messaging 应用被启动?
解决方案
推测大概是因为 */*
通配符可以匹配任何字符。
反过来说,如果消息不匹配 */*
,就没有别的可以匹配 */*
,这将是对指定它作为 MIME 类型毫无意义。
时间: 2024-09-19 14:30:39