Kotlin - делиться аудиофайлом с необработанного ресурса - PullRequest
0 голосов
/ 08 октября 2019

У меня есть приложение Soundboard для Android, и я пытаюсь сделать так, чтобы пользователи могли обмениваться звуками в приложении через мессенджер, Gmail и т. Д. Вот код, который я пытался использовать для этой цели:

Фрагмент:

val uri = SoundProvider.getUri(4,(activity as MainActivity).packageName)
val share = Intent(Intent.ACTION_SEND)
share.type = "audio/*"
share.putExtra(Intent.EXTRA_STREAM, uri)
startActivity(Intent.createChooser(share, "Share Sound File"))

Функция getUri:

fun getUri(id: Int, packageName: String):Uri{
        val uri = Uri.parse(
            ContentResolver.SCHEME_ANDROID_RESOURCE
                    + File.pathSeparator + File.separator + File.separator
                    + packageName
                    + File.separator
                    + R.raw.random_sound
        )
        return uri
    }

К сожалению, этот код не работает, когда я нажимаю на один из параметров общего доступа в приложении (например,gmail), он просто открывает пустое письмо без вложений. Аналогично с другими приложениями. Кто-нибудь знает, как заставить это работать?

1 Ответ

0 голосов
/ 09 октября 2019

Я думаю, что это правильный путь, означает использовать File.pathSeparator 2 раза, а не 3 раза подряд:

ContentResolver.SCHEME_ANDROID_RESOURCE
                + File.pathSeparator + File.separator
                + packageName
                + File.separator
                + R.raw.random_sound
...