繁体   English   中英

Android:如何在电子邮件中发送屏幕截图而不将该屏幕截图保存到 SD 卡?

[英]Android: How to send a screenshot in an email without saving that screenshot to the SD card?

我读过的每个在 Android 中通过电子邮件发送屏幕截图的示例都涉及首先将位图保存到 SD 卡,然后稍后引用图片以通过电子邮件发送。 有没有办法可以发送屏幕截图而不先将其保存到手机?

欢迎您尝试为openFile()返回的ParcelFileDescriptor创建一个使用管道而不是文件的流式ContentProvider 您的提供者将提供堆空间的屏幕截图,写入您从管道末端获得的OutputStream 然后,您可以在附件的EXTRA_STREAM extra 中将Uri传递给您的提供者的流。 此示例应用程序说明了该技术,但在我的情况下,我正在读取文件以写入OutputStream

这是一项相当大的工作,它可能与所有电子邮件客户端都不兼容。 例如,您的基于管道的流是不可搜索的,客户可能认为他们可以在流中搜索以倒带以重新读取各个位。 还要记住,您仍然需要将屏幕截图的Bitmap转换为 PNG 文件。

如果您担心将文件放在外部存储上,请将屏幕截图写入内部存储并使用FileProvider为其提供服务。 此示例应用程序与上一个示例应用程序类似,并说明了FileProvider

首先将位图保存到 SD 卡

大约零个示例将证明这一点,因为开发人员不容易访问可移动存储 这些示例可能是在演示写入外部存储

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM