安卓分享意图文件格式不受支持。

4
我正在尝试分享我drawable文件夹中的一张图片。之前它是可以的,但现在每当我尝试分享时,我会选择要分享给的人,然后就会弹出一个消息提示:“文件格式不支持”。由于某种原因,我无法通过Whatsapp分享它,但我可以通过另一个应用程序(如Snapchat)分享它。因此,我知道它正在获取正确的图像。
这是我的分享代码:
Uri imageUri;
imageUri = Uri.parse("android.resource://" + getPackageName() + "/drawable/" + "image" + String.valueOf(mViewPager.getCurrentItem() + 1));
//imageUri = Uri.parse("android.resource://" + getPackageName() + R.drawable.image1);
Log.d("Sharing", "android.resource://" + getPackageName() + "/drawable/" + "image" + String.valueOf(mViewPager.getCurrentItem() + 1));
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
//sharingIntent.putExtra(Intent.EXTRA_TEXT, "Ha Ha! Check out this picure I got with todays date! Download the app: http://www.google.com");
sharingIntent.setType("image/jpg");
sharingIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(sharingIntent, "Share via"));

这是我从日志中获得的一个错误,但我并没有使用ArrayList来共享。

W/Bundle: Key android.intent.extra.STREAM expected ArrayList but value was a android.net.Uri$StringUri.  The default value <null> was returned.

而Log.d打印出来的内容如下:

D/Sharing: android.resource://com.trommelen.okke.scheurkalender/drawable/image155

@Neil 添加了日志。 - Okke Trommelen
@Neil 添加了日志。 - Okke Trommelen
你的drawable文件夹里有那张图片吗? - Ashish Tiwari
@AshishTiwari 是的,我是这样做的。我还尝试直接从drawable文件夹获取图像,而不是动态获取。 - Okke Trommelen
你试过这样吗:`imageUri = Uri.parse("android.resource://" + getResources().getDrawable(R.drawable.ic_lock));` - Ashish Tiwari
显示剩余3条评论
1个回答

3

我通过添加位图并将android.permission.WRITE_EXTERNAL_STORAGE权限添加到清单文件中解决了这个问题。

Bitmap imgBitmap=BitmapFactory.decodeResources(getResources(),R.drawable.image1);
String imgBitmapPath=Images.Media.insertImage(getContentResolver(),imgBitmap,"title",null);
Uri imgBitmapUri=Uri.parse(imgBitmapPath);

然后将 imgBitmapUri 作为额外流添加。

您可能希望使此答案更易读(在此格式下,代码看起来相当糟糕)。 - Paul Stelian
这个能编译通过吗?我不是安卓开发人员,但是getContetResolver看起来有问题。就像androi.permission一样。 - Tunaki
是的,我没有看到这些错误,我只是修复了它们。 - m33th

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接