当我使用* / * mimeType类型启动ACTION_SEND意图时,为什么启动了android Messaging应用程序

时间:2011-06-10 21:37:38

标签: android

我看一下android Messaging App的源代码,清单文件说:

  <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应用程序?

1 个答案:

答案 0 :(得分:2)

大概是因为*/*是匹配所有内容的通配符。

让我们翻看它。如果Messaging与*/*不匹配,那么 nothing 将匹配*/*,并且将它指定为MIME类型完全没有意义。