Я думал, что это популярная проблема, но я не могу найти ничего, что связано с ней. Так вот что я хочу: Я пытаюсь отправить изображение по WhatsApp со следующим кодом:Отправить изображение через Intent от WhatsApp - Неверное изображение
public static void shareImage(Context context,Bitmap bitmap, String text){
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/*");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
File f = new File(Environment.getExternalStorageDirectory() + File.separator + "temporary_file.jpg");
try {
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
fo.close();
} catch (IOException e) {
e.printStackTrace();
}
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
share.setPackage("com.whatsapp");
context.startActivity(Intent.createChooser(share, "Share!"));
}
Он отлично работает, в первый раз я использую приложение .. правое изображение появится в WhatsApp , Если я выберу другой битмап с моим приложением, Whatsapp все еще показывает первое изображение.
То, что я сделал, и то, что я думал, что вызвало проблемы:
- Если существовал временный файл, я удалил его
f.delete()
- Затем я обновил галерею с MediaScanner, потому что я думал, что URI Я положил в Extra не в курсе ...
Fyi: Временный файл содержит правильное изображение. Если я выберу его с помощью FileExplorer, он отобразит правильное изображение. Если я попытаюсь отправить изображение. все еще старый Image
Есть ли у кого-нибудь идеи, в чем проблема? Неужели Ури ошибается? Если я напечатаю Uri.fromFile(f)
, то он говорит file:///storage/sdcard0/temporary_file.jpg
Спасибо!
Nico
О Спасибо! Я попробую это и даю любую обратную связь. Но это звучит вполне правдоподобно, потому что я его не отправил, как вы ожидали – Wicked161089
Я действительно работал! Я просто создаю новые временные файлы и использую их вместо того, чтобы переписывать один ... в Activitys onDestroy Я удаляю все tmp-файлы. Благодаря @Andree – Wicked161089