如何在Facebook、Twitter、Mail等中共享位图。。。而不将图像保存在内部或外部存储器中?
首先,我会将位图临时写入外部存储,并使用它来调试基本的共享文件逻辑。
然后,实现一个ContentProvider
,在这里覆盖openFile()
并提供PNG(或JPEG或其他)的byte[]
。然后在ACTION_SEND
Intent
中使用指向ContentProvider
的content://
Uri
,而不是指向外部存储器的Uri
。
这个示例项目演示了基本结构。在我的情况下,我从资产而不是内存中提供文件,所以您需要更改逻辑的这一部分。此外,我将ContentProvider
用于ACTION_VIEW
请求,而不是ACTION_SEND
,因此需要对其进行更改。
这项工作的效果将取决于第三方应用程序从您的提供商读取内容的速度,以及您是否可以安排将位图保存在内存中那么长时间。