不支持 Intent 图像共享文件格式
Intent image share-file format not supported
我无法在社交媒体上分享图片
当我点击分享按钮时。
它显示了 Toast
File format not supported
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 获取 link 并解析为 URI,但我不知道为什么会这样显示。
I hardcoded the URL just for testing purposes.
对于 WhatsApp:
File Format not supported
对于 Instagram:
Image Unable to load
对于 Facebook:
Showed nothing means no Toast or anything(Just Showed the status bar)
对于 Messenger:
Not opened
引用the documentation,EXTRA_STREAM
应该指向"A content:
URI holding a stream of data associated with the Intent
, used with ACTION_SEND
to supply the data being sent."
您提供的是 https
Uri
,其他应用不会期望它。无论如何,并非所有支持 ACTION_SEND
的应用程序都将具有 INTERNET
权限。
如果您想分享一些内容,通常它需要在设备上本地并通过 FileProvider
或其他形式的 ContentProvider
分享。在 Android 7.0 之前,指向 external storage 上文件的 file
方案通常也可以正常工作。
我无法在社交媒体上分享图片
当我点击分享按钮时。
它显示了 Toast
File format not supported
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 获取 link 并解析为 URI,但我不知道为什么会这样显示。
I hardcoded the URL just for testing purposes.
对于 WhatsApp:
File Format not supported
对于 Instagram:
Image Unable to load
对于 Facebook:
Showed nothing means no Toast or anything(Just Showed the status bar)
对于 Messenger:
Not opened
引用the documentation,EXTRA_STREAM
应该指向"A content:
URI holding a stream of data associated with the Intent
, used with ACTION_SEND
to supply the data being sent."
您提供的是 https
Uri
,其他应用不会期望它。无论如何,并非所有支持 ACTION_SEND
的应用程序都将具有 INTERNET
权限。
如果您想分享一些内容,通常它需要在设备上本地并通过 FileProvider
或其他形式的 ContentProvider
分享。在 Android 7.0 之前,指向 external storage 上文件的 file
方案通常也可以正常工作。