【发布时间】:2016-10-16 10:50:49
【问题描述】:
我在将图像从我的应用程序共享到 WhatsApp 时遇到问题。
int imageId = getResources().getIdentifier("image_name", "drawable", getPackageName());
Uri imageUri = Uri.parse("android.resource://com.companyname.packagename/drawable/"+ imageId);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/jpeg");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "send"));
此代码适用于 Facebook Messenger 或内置 Messenger 的 Android。 但它不适用于 WhatsApp。我收到此错误消息:
“不支持文件格式!”
我已经通过使用@CommonsWare 解决方案解决了这个问题: https://github.com/commonsguy/cwac-provider
【问题讨论】:
-
许多应用程序在
android.resourceUri值方面存在问题,因为它们不常见、出乎意料,因此经常未经测试。 -
试试
shareIntent.setType("image/*"); -
@CommonsWare 感谢您的回答。有没有其他方法可以在不使用
android.resource的情况下获取我的图像文件的路径? -
你可以将这个drawable移动到
res/raw/或assets/,然后使用我的StreamProvider来使用content:Uri:github.com/commonsguy/cwac-provider或者,将图像复制到文件上internal storage,然后useFileProviderto serve it using acontent:Uri。 -
@CommonsWare 谢谢 :) 我会试试你的 CWAC-Provider。
标签: android image android-intent share whatsapp