gpt4 book ai didi

android - 在 Android 中发送电子邮件仅选择电子邮件应用程序并指定附件 mime 类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:52 25 4
gpt4 key购买 nike

在我的 Android 应用程序中,我发送带有图片的电子邮件。

使用 Intent 系统发送它,我可以做以下两件事之一:

1) 将类型指定为“message/rfc822”,以便在选择器中仅显示电子邮件应用程序。

不便之处:我无法指定使用 EXTRA_STREAM 和 Uri 附加的图像的 MIME 类型。许多接收电子邮件的应用程序(Gmail、Android 等)将其显示为附加到邮件的未知二进制文件“blob”,不知道如何预览它,也不知道如何将其作为附件打开。

2) 将类型指定为(比如)“image/png”。图片已附加,Gmail 等电子邮件客户端可以预览它,并在适当的应用程序中打开附件。

不便之处:对于发送用户,我无法将用户必须在选择器中选择的应用程序列表减少到电子邮件应用程序,并且我的 Android 设备中显示了许多应用程序,其中大部分不是电子邮件应用程序,也不是什么我要。

是否有指定其“message/rfc822”电子邮件 Intent 并指定通过 Intent.EXTRA_STREAM 中的 Uri 附加的数据的 MIME 类型?

顺便说一句:我正在从我自己的 ContentProvider 提供文件,并且没有调用 getType() 方法(用于确定文件 MIME 类型)。 query() 方法是但不请求文件类型,只显示名称和文件大小。

谢谢

最佳答案

交叉发布我在 android-developer Google Group 上的回答:

如果你愿意推出自己的对话,你可以:

第 1 步:创建 message/rfc822 Intent,就像您要以这种方式发送,并将其与 PackageManagerqueryIntentActivities() 找出谁处理它。

第 2 步:创建 image/png Intent,就像您要发送一样这样,并将它与 PackageManagerqueryIntentActivities() 一起使用找出谁处理它。

第 3 步:计算这两组 Activity 的交集。

第 4 步:使用它们填充一个 AlertDialog 供用户选择。

  • 步骤#4a:如果路口有一个匹配项,则跳过此步骤。
  • 步骤 #4b:如果交叉路口有零个匹配项,请告知用户你不能发送消息。

第 5 步:修改 image/png Intent 以添加所选组件从对话框中调用 startActivity()

通过在Intent中指定组件,它会转到那个特定 Activity 。这实际上是常规选择器做。

关于android - 在 Android 中发送电子邮件仅选择电子邮件应用程序并指定附件 mime 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5841417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com