通过我的应用程序将图像发送到whatsapp

时间:2017-06-20 21:34:01

标签: android image bitmap whatsapp

我是大家,我有一个问题。我必须从我的应用程序发送图像到whatsapp。我以位图格式下载了图像。在我转换jpg中的位图格式后,我尝试发送图像。但是whatsapp没有收到任何数据。

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("image/jpeg");

Bitmap bmp = getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);

File f = new File(getAppContext().getCacheDir() + File.separator + "temporary_file.jpg");
try {
       f.createNewFile();
       FileOutputStream fo = new FileOutputStream(f);
       fo.write(stream.toByteArray());
       fo.flush();
       fo.close();
 } catch (IOException e) {
       e.printStackTrace();
 }

 shareIntent.putExtra(Intent.EXTRA_STREAM, f.getPath());
 myShareActionProvider.setShareIntent(shareIntent);

我已将所有权限插入到清单中。 我该如何解决? 感谢。

PS。我使用min sdk 17和max sdk 24

1 个答案:

答案 0 :(得分:1)

WhatsApp无法访问getCacheDir()返回的目录,只有您的应用才能访问。尝试这样做:

File f = new File(Environment.getExternalStorageDirectory() + File.separator + "temporary_file.jpg");

为此,您需要在manifest.xml文件中声明WRITE_EXTERNAL_STORAGE权限。像这样:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />