我是大家,我有一个问题。我必须从我的应用程序发送图像到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
答案 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" />