Kotlin-从原始资源共享音频文件

时间:2019-10-08 20:00:42

标签: android audio kotlin sharing

我有一个适用于Android的Soundboard应用程序,正在尝试使用户能够通过Messenger,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 :(得分:0)

我认为这是正确的方法,这意味着两次使用File.pathSeparator而不是连续使用3次:

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