Java 是否可以通过数据URL在Android上共享图像?

Java 是否可以通过数据URL在Android上共享图像?,java,android,android-intent,graphics,Java,Android,Android Intent,Graphics,是否可以使用类似这样的代码共享图像 Intent share = new Intent(Intent.ACTION_SEND); share.setData(Uri.parse("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACx" + "jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGoSURBVDhPlVM9S

是否可以使用类似这样的代码共享图像

Intent share = new Intent(Intent.ACTION_SEND);
share.setData(Uri.parse("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACx"
    + "jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGoSURBVDhPlVM9SEJRGD2DkL+QmoiKYNggToJL"
    + "4KKLNDiKW4NCoENQkzS1uboILoKjW61NSZOjo1uOBlHPgjJsuN3jvc+naVQHPt79vu+cc9/37n34"
    + "BQkd/0Jibw+3Ozt4j0TwwuCaNfYU5Qe43Tg5OMDD9TWEYUAIoYJr1mIxPEmjc01fh8uF03wer6vC"
    + "7zGbQZRKmPp8uNCyJWKhEAwSTDJ3NNc07fUsE76J1FjjcL5VQb0O4XBAVCoqj0ZV3u2qvN+H8Psx"
    + "1HLAZsPn6u6pFIQsi3AYYjKBcDpVXiyqPrl2O2ayZqc+FY9jaooZuZwSJBJL8iKv1SwONdTSIJtO"
    + "w1g1GA4h9vfVk3mjod5mPLY4ySQMqT2kgZ0jsMjZBgOL9D1omM2qtfwmH1K7SwN4vbhnkzuQ0G5v"
    + "imnOHjkMjwePC7HGUSajxuDM1aqa/+wM4vJSCRnmHSkU8CwNjrVWIRDAVauFubnjaATRbCoD7m7W"
    + "Ox3Mg0HcaNkaduV9GPCmbbuNrLEnxXeSuzi+reD/wJ+Hx1Qu443BNWvsadqfwDOu6lic9yaAL2uK"
    + "Y4RMd4E2AAAAAElFTkSuQmCC"));
startActivity(Intent.createChooser(share, getString(R.id.menu_share)));
我的目标是使我的应用程序不需要写入存储的权限,而是能够共享它动态创建的图像。有没有办法做到这一点

是否可以使用类似这样的代码共享图像

Intent share = new Intent(Intent.ACTION_SEND);
share.setData(Uri.parse("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACx"
    + "jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGoSURBVDhPlVM9SEJRGD2DkL+QmoiKYNggToJL"
    + "4KKLNDiKW4NCoENQkzS1uboILoKjW61NSZOjo1uOBlHPgjJsuN3jvc+naVQHPt79vu+cc9/37n34"
    + "BQkd/0Jibw+3Ozt4j0TwwuCaNfYU5Qe43Tg5OMDD9TWEYUAIoYJr1mIxPEmjc01fh8uF03wer6vC"
    + "7zGbQZRKmPp8uNCyJWKhEAwSTDJ3NNc07fUsE76J1FjjcL5VQb0O4XBAVCoqj0ZV3u2qvN+H8Psx"
    + "1HLAZsPn6u6pFIQsi3AYYjKBcDpVXiyqPrl2O2ayZqc+FY9jaooZuZwSJBJL8iKv1SwONdTSIJtO"
    + "w1g1GA4h9vfVk3mjod5mPLY4ySQMqT2kgZ0jsMjZBgOL9D1omM2qtfwmH1K7SwN4vbhnkzuQ0G5v"
    + "imnOHjkMjwePC7HGUSajxuDM1aqa/+wM4vJSCRnmHSkU8CwNjrVWIRDAVauFubnjaATRbCoD7m7W"
    + "Ox3Mg0HcaNkaduV9GPCmbbuNrLEnxXeSuzi+reD/wJ+Hx1Qu443BNWvsadqfwDOu6lic9yaAL2uK"
    + "Y4RMd4E2AAAAAElFTkSuQmCC"));
startActivity(Intent.createChooser(share, getString(R.id.menu_share)));
否,因为
ACTION\u SEND
不使用
Uri
。它使用
EXTRA\u文本
EXTRA\u流

我的目标是使我的应用程序不需要写入存储的权限,而是能够共享它动态创建的图像。有没有办法做到这一点

创建一个
ContentProvider
来提供文件,然后将指向提供程序中的文件的
Uri
放入
EXTRA\u流中。您可以使用自定义权限保护提供程序,并允许发送活动通过
标志\u授予\u读取\u URI\u权限
临时访问该提供程序,尽管我仅使用使用实际
URI
意图
结构(例如,
设置数据()
)而不是通过一个额外的类似
的额外\u流


使用
ACTION\u VIEW
演示此技术(注意:需要安装PDF查看器的设备才能真正工作)。

@WilliamKinaan在您链接的文章中,我没有看到任何关于将图像嵌入意图的内容。这是@WilliamKinaan部分,它似乎在演示如何从设备中拾取照片。我试图发送的图片未保存在设备上。它是在屏幕上动态绘制/生成的。这非常有效!我只是将Uri放在putExtra的第二个参数中,它就知道了如何通过ContentProvider链接的Uri获取图像!它必须使用接受字符串作为第二个参数的重载。您是否建议我在任何地方发布有关我的特定解决方案及其在本主题中的工作方式的更多详细信息?我认为这是一个非常酷的解决方案,但我不确定其他人可能希望在这里看到什么细节。当然,您链接到的代码回答了我的许多问题,但我也必须足够聪明才能查看清单文件。@BlueMonkMN:请分享一些您是如何做到这一点的信息。我正试图做完全相同的事情。