c# - 如何创建旨在通过电子邮件共享的 byte[] 图像

标签 c# android xamarin xamarin.android xamarin.forms

我正在尝试创建一个 byte[] 图像 Intent ,以便与我的 Xamarin.Android 应用程序上的电子邮件应用程序共享。到目前为止,我有以下内容:

public void ShareAsync(byte[] image, string message)
{
    if (string.IsNullOrEmpty(message) || image == null)
        return;

    var sharingIntent = new Intent();
    sharingIntent.SetAction(Intent.ActionSend);
    sharingIntent.SetType("image/*");
    sharingIntent.PutExtra(Intent.ExtraStream, image);
    sharingIntent.AddFlags(ActivityFlags.GrantReadUriPermission);
    Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity.StartActivity(Intent.CreateChooser(sharingIntent, message));
}

这会弹出共享对话框,我可以单击电子邮件应用程序,但它返回一封空白电子邮件。

是否可以与电子邮件应用程序共享byte[],以便图像显示为正文或附件的一部分?

最佳答案

这取决于电子邮件应用程序是否接受图像作为字节数组,我确信这不适用于大多数电子邮件应用程序,因为您无法在其中放入大量数据 Intent 。它的大小限制为 1 MB 数据,因此在任何情况下都无法传递大于 1 MB 的字节数组,即使电子邮件应用程序支持此类图像共享也是如此。

所以简短的回答是没有办法

关于c# - 如何创建旨在通过电子邮件共享的 byte[] 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44948223/

相关文章:

java - Android TextView 设置 HTML 图像后没有正方形的图像

android - 按钮下方的居中标签和按钮之间的相同空间

java - Android 动态壁纸视差滚动效果

android - 在使用 Device Policy Manager 时需要帮助

xamarin - iOS Simulatos 现在仅适用于 Visual Studio Enterprise?

c# - 如何在WPF中绑定(bind)两个DataGrid列宽度?

c# - 是否可以在 OpenGL 中从多个 Texture2D 对象创建一个 Texture2D_Array?

c# - 如何在 Xamarin iOS 中创建垂直 ScrollView

c# - 关于 Haskell -> C# 转换的问题

c# - 如何在 C# 中使用 char * 参数调用 ActiveX 函数