保存在内存中的网址文件无法正确显示

时间:2019-04-19 14:12:01

标签: android file kotlin settings ringtone

我正在制作一个应用程序,该应用程序从REST API下载.mp3文件并将其保存在系统铃声目录中,以便用户稍后将其选择为铃声。我在华为设备上有一个奇怪的问题。该文件保存在“铃声”目录中,但是在“铃声”列表的系统设置中不可见。为了使其可见,我必须手动转到“铃声”文件夹并更改文件名。之后,此铃声将在设置中正确可见。仅在华为设备上会出现此问题。使用File.renameTo()从代码更改文件名不起作用。我发现解决此问题的唯一方法是由用户手动更改。有谁知道这种行为的原因,最终我该如何使其正常工作?

这是我的代码的一部分,将代码从改造的responseBody保存到Ringtone目录中的文件中。

fun saveFileFromResponse(responseBody: ResponseBody) {
    val readableByteChannel = Channels.newChannel(responseBody.byteStream())

    val file = File(
        Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES),
        "audio.mp3"
    )

    val outStream = FileOutputStream(file)

    outStream.channel.transferFrom(readableByteChannel, 0, Long.MAX_VALUE)

    readableByteChannel.close()
    outStream.close()
}

0 个答案:

没有答案