0

简介和背景

嗨,我有一个由我的应用程序创建的位图,我希望将此位图发送到任何可以处理 mime 类型“image/png”和操作(“ACTION_SEND”)的应用程序。基本上,允许位图图像通过电子邮件和消息等其他组件发送给某人。

我现在得到的

目前,我的应用程序将位图图像保存到我创建的目录中的外部存储器中。保存的每个位图都由 MediaScannerConnection 扫描并使用 OnScanCompleteListener,我使用获得的 Uri 来构建隐式意图。这工作正常。

我的问题

我正在尝试迎合没有外部存储器或勾选了他们不希望保存/存储任何图像的设置的用户(仅适用于该实例并在他们关闭应用程序时消失)。因此,我是否需要将图像实际保存在内存中并获取 Uri 才能将位图图像作为隐式意图传递。

非常感谢您的阅读。

4

1 回答 1

1

不,您不需要将该图像保存在任何地方。只需从以下位置获取文件路径Bitmap

String path = Images.Media.insertImage(context.getContentResolver(), bitmap,"abcd", null);

然后从中得到一个有效Uri的:

Uri image = Uri.parse(path); 

并将其添加Uri到您的Intent像这样:

intent.putExtra(Intent.EXTRA_STREAM,  image);

完毕!

于 2015-03-02T13:34:05.673 回答