不支持 Intent 图像共享文件格式
Posted
技术标签:
【中文标题】不支持 Intent 图像共享文件格式【英文标题】:Intent image share-file format not supported 【发布时间】:2018-01-26 09:51:57 【问题描述】:我无法在社交媒体上分享图片
当我点击分享按钮时。
它显示了Toast
不支持文件格式
public void onBindViewHolder(final ViewHolder holder, int position)
upload = uploads.get(position);
holder.textViewName.setText(upload.getName());
final String imageUrl=upload.getUrl();
Glide.with(context).load(imageUrl).into(holder.imageView);
final Uri imageUri=Uri.parse("https://firebasestorage.googleapis.com/v0/b/memories-project.appspot.com/o/uploads%2FnCfBZThQykf3Ur9oNzHyEHS1DEp2%2F45007?alt=media&token=9ae17594-13ff-40f6-98f9-aff80ab2fdf4");
holder.shareImage.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
Toast.makeText(context,imageUrl,Toast.LENGTH_SHORT).show();
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM,imageUri);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
try
context.startActivity(Intent.createChooser(shareIntent, "Share image File"));
catch (android.content.ActivityNotFoundException ex)
);
我将图像存储到firebase
。
现在我从 firebase 获取链接并解析为 URI,但我不知道为什么会这样显示。
我只是为了测试目的对 URL 进行了硬编码。
对于 WhatsApp:
不支持文件格式
对于 Instagram:
图片无法加载
对于 Facebook :
什么都不显示意味着没有 Toast 或任何东西(只是显示状态栏)
对于信使:
未打开
【问题讨论】:
【参考方案1】:引用the documentation、EXTRA_STREAM
应该指向“一个content:
URI 包含与Intent
关联的数据流,与ACTION_SEND
一起使用以提供正在发送的数据。”
您提供的是https
Uri
,其他应用不会期待它。无论如何,并非所有支持ACTION_SEND
的应用程序都将拥有INTERNET
权限。
如果您想共享某些内容,通常需要在设备上本地并通过FileProvider
或其他形式的ContentProvider
共享。在 Android 7.0 之前,指向 external storage 上的文件的 file
方案通常也可以正常工作。
【讨论】:
以上是关于不支持 Intent 图像共享文件格式的主要内容,如果未能解决你的问题,请参考以下文章
我收到一条错误消息,内容为“不支持给定路径的格式”。尝试将音频文件上传到共享点时
我如何与 Intent.ACTION_SEND 一起共享和保存图像和文本?