Прежде всего, как следует из другого ответа, в настоящее время Intent.ACTION_SEND_MULTIPLE
- это способ отправки нескольких файлов.
Но отсутствие функции во встроенных блоках Sketchware на самом деле не является точным ограничением приложения, поскольку он предоставляет следующий блок, который может делать все, что вы хотите, способом android.
И вы уже использовали этот элемент для добавления пользовательского кода. Итак, для решения вашей проблемы блок будет таким:
А вот подробности некоторых пользовательских блоков кода, которые я добавлено:
mail.setAction(Intent.ACTION_SEND_MULTIPLE):
Этот пользовательский код был добавлен путем удаления блока по умолчанию Intent> setAction . И название действия говорит само за себя, это позволяет отправлять несколько файлов через намерение.
ArrayList<Uri> uris = new ArrayList<Uri>():
Это объявляет новый ArrayList для хранения списка всех Uri для быть отправлено через намерение.
uris.add(Uri.fromFile(new java.io.File(Environment.getExternalStorageDirectory() + "/Documents/filename1.pdf"))):
Эта строка добавляет предоставленный uri к ArrayList named uris . Вызывайте этот блок столько раз, сколько хотите, чтобы добавить в список несколько файлов uri.
mail.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris):
Это связывает uris с EXTRA_STREAM намерения.
Изменить:
Начиная с Android 7.0 и выше, в целях безопасности есть некоторые изменения в политике. Вот почему добавлен этот дополнительный код. Приведенное выше изображение блока уже обновлено с помощью этого кода:
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
Хотя рекомендуется использовать android.support.v4.content.FileProvider
для решения этой проблемы, но для меньшей поддержки на платформе Sketchware на данный момент лучше для использования вышеуказанного метода.
Вы можете прочитать this для получения дополнительных разъяснений по вышеуказанному исправлению.