是否有可能通过数据URL分享Android上的图像? [英] Is it possible to share an image on Android via a data URL?
问题描述
是否有可能与code这样的事?
分享图片 意图份额=新意图(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 +红/ WJ + Hx1Qu443BNWvsadqfwDOu6lic9yaAL2uK
+Y4RMd4E2AAAAAElFTkSuQmCC));
startActivity(Intent.createChooser(份额,的getString(R.id.menu_share)));
我的目标是让我的应用程序不需要权限写入到存储,而是要能够分享其动态创建的图像。有没有办法做到这一点?
是否有可能与code这样的事?
分享图片
块引用>没有,因为
ACTION_SEND
不使用乌里
。它采用EXTRA_TEXT
或EXTRA_STREAM
。
我的目标是让我的应用程序不需要权限写入到存储,而是要能够分享其动态创建的图像。有没有办法做到这一点?
块引用>创建一个
的ContentProvider
来提供服务的文件,然后把乌里
指向您的文件你的供应商在EXTRA_STREAM
。您的可能的能够保护具有自定义权限的供应商,并允许它的发送活动临时访问通过FLAG_GRANT_READ_URI_PERMISSION
,虽然我只试过与使用意图
结构的实际乌里
(例如,使用setData()
),而不是通过像EXTRA_STREAM
额外的。使用此演示了这一技术示例项目
ACTION_VIEW
(注意:需要安装一个PDF浏览器的设备,真正工作)。Is it possible to share an image with code something like this?
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)));
My goal is to make my app not require permissions to write to storage, but to be able to share images that it dynamically creates. Is there any way to do this?
解决方案Is it possible to share an image with code something like this?
No, because
ACTION_SEND
does not use theUri
. It usesEXTRA_TEXT
orEXTRA_STREAM
.My goal is to make my app not require permissions to write to storage, but to be able to share images that it dynamically creates. Is there any way to do this?
Create a
ContentProvider
to serve the file, then put theUri
pointing to your file within your provider inEXTRA_STREAM
. You may be able to protect the provider with a custom permission and allow the sending activity temporary access to it viaFLAG_GRANT_READ_URI_PERMISSION
, though I have only tried that withIntent
structures that use the actualUri
(e.g.,setData()
) instead of via an extra likeEXTRA_STREAM
.This sample project demonstrates this technique using
ACTION_VIEW
(note: requires a device with a PDF viewer installed to truly work).这篇关于是否有可能通过数据URL分享Android上的图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!