Передать несколько фотографий в WhatsApp
Я хочу отправить 2 фотографии из своего приложения в WhatsApp. У меня есть List из Uri, он передается в intent. Но ничего не отправляется, что я делаю не так? И возможно ли вообще отправлять несколько фотографий в другие приложения? Помогите пожалуйста, заранее спасибо.
Button button = findViewById(R.id.buttom);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri ur = Uri.parse("https://d2ph5fj80uercy.cloudfront.net/04/cat2972.jpg");
ArrayList<Uri> imageUris = new ArrayList<>();
imageUris.add(ur); // Add your image URIs here
imageUris.add(ur);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUris);
shareIntent.setType("image/jpg");
shareIntent.setPackage("com.whatsapp");
startActivity(Intent.createChooser(shareIntent, "Share images to.."));
}
});
Ответы (1 шт):
Автор решения: Сергей Бувака
→ Ссылка
Вы должны использовать Intent.ACTION_SEND_MULTIPLE вместо Intent.ACTION_SEND.
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.putExtra(Intent.EXTRA_SUBJECT, "Here are some files.");
intent.setType("image/jpeg"); /* This example is sharing jpeg images. */
ArrayList<Uri> files = new ArrayList<Uri>();
for(String path : filesToSend /* список отправляемых файлов */) {
File file = new File(path);
Uri uri = Uri.fromFile(file);
files.add(uri);
}
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, files);
startActivity(intent);
Это, можно упростить, но я оставил несколько строк, чтобы вы могли разбить каждый необходимый шаг.
Начиная с API 24, совместное использование файлов URI вызовет исключение FileUriExposedException. Чтобы исправить это, вы можете использовать URI контента с FileProvider.