Файлы URL, сохраненные в памяти, не отображаются должным образом - PullRequest
0 голосов
/ 19 апреля 2019

Я создаю приложение, которое загружает файл .mp3 из REST API и сохраняет его в системном каталоге мелодий звонка, чтобы пользователь мог позже выбрать его в качестве мелодии звонка. У меня странная проблема на устройствах Huawei. Файл сохраняется в каталоге рингтонов, но не отображается в настройках системы в списке рингтонов. Чтобы сделать его видимым, я должен вручную перейти в папку Мелодии и изменить имя файла. После этого рингтон правильно виден в настройках. Эта проблема возникает только на устройствах Huawei. изменение имени файла из кода с помощью File.renameTo () не работает. Единственный способ, который я нашел, чтобы это исправить - это ручная смена пользователем. Кто-нибудь знает, что может быть причиной такого поведения и, в конце концов, как я могу заставить его работать правильно?

Это фрагмент моего кода, сохраняющий данные из модифицированного отклика тела в файл в каталоге 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()
}
...