Share Multiple Images or Files on Android

Yes but you’ll need to use Intent.ACTION_SEND_MULTIPLE instead of 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 /* List of the files you want to send */) {
    File file = new File(path);
    Uri uri = Uri.fromFile(file);
    files.add(uri);
}

intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, files);
startActivity(intent);

My Own Solution

    private fun shareSelectedFiles() {

        val files = ArrayList<Uri>()

        CachePupli.selectedMediaList.forEach { s: String ->
            val uri = Uri.parse("file:///$s")
            files.add(uri)
        }

        val intent = Intent(Intent.ACTION_SEND_MULTIPLE)
        intent.setType(FileHelper().getMimeType(files.get(0).path))
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
        intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, files)

        val clipData = ClipData.newUri(contentResolver, "Share", files.get(0));

        if (files.size > 1) {
            var i = 1

            while (i < files.size) {
                clipData.addItem(ClipData.Item(files.get(i)))
                i++
            }
        }

        intent.clipData = clipData
        startActivityForResult(Intent.createChooser(intent, "Share"), 10001)
    }


    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

        // after sharing multiple files
        if (requestCode == 10001) {
            CachePupli.selectMediaMode = false
            EventBus.getDefault().post(ChangeSelectionModeStatusEvent(false))
        }

        super.onActivityResult(requestCode, resultCode, data)
    }

References
https://stackoverflow.com/questions/15577438/how-can-i-share-multiple-files-via-an-intent