Если я строю намерение только с одним приложенным файлом, используя простое:
intent.putExtra(Intent.EXTRA_STREAM, detailsuri);
... тогда это работает.Но если я пытаюсь прикрепить несколько файлов, используя
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
..., тогда ничего не прикрепляется.Я могу прикрепить каждый из файлов успешно, когда я делаю это по одному.Так что это не проблема ни с одним из файлов.Вот полный код, который создает файлы, получает Uris и строит намерение.
Чего мне не хватает?Почему я не могу прикрепить несколько файлов?
File outputDir = controller.getDocumentStorageDir();
String jsontext = buildDbText();
File dbfile = new File(outputDir, "db.json");
FileWriter writer = new FileWriter(dbfile);
writer.write(jsontext);
writer.close();
Uri jsondburi = Uri.fromFile(dbfile);
String appdetails = buildDetailsText();
File detailsfile = new File(outputDir, "details.txt");
FileWriter writer = new FileWriter(detailsfile);
writer.write(appdetails);
writer.close();
Uri detailsuri = Uri.fromFile(detailsfile);
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:")); // only email apps should handle this
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { custsupportEmail });
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, emailbody);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
ArrayList<Uri> uris = new ArrayList<>();
uris.add(detailsuri);
uris.add(jsondburi);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(intent);