我正在使用非常标准的代码从我的应用程序发送图像。一位用户通过电子邮件告诉我,他们的默认消息传递应用程序没有显示在选择器中,奇怪的是,我的手机上也是如此。我正在玩意图的MIME类型。 "text/plain"
显示了一组选项,包括我的消息应用,"*/*"
显示了一个吨。我是否会懒惰地将MIME类型设置为"*/*"
,这样我就不会被应用程序过滤,应该是用户发送图像的选项?或者这是几乎要走的路?
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/jpeg");
Uri uri = Uri.fromFile(file);
intent.putExtra(Intent.EXTRA_STREAM, uri);
activity.startActivity(Intent.createChooser(intent, "Custom Heading..."));
我不喜欢的一个副作用是,一些应用程序(Facebook,Handcent)注册了多个意图发送各种MIME类型,因此当MIME类型为{时,它们会多次出现在列表中{1}}。
答案 0 :(得分:4)
内置消息传递应该处理你的mime类型,因此它可能是特定于平台的问题:
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
Check out the source for all the mime types that are handled