在 Android Api 29 中设置自定义铃声

问题描述

我有一个 kotlin 功能,可以将录制的音频设置为我的铃声。 它将声音文件复制到铃声库中,我可以播放它。 问题是 1 - 将标题设置为 1617159412418 而不是我在内容值中指定的字符串标题 2 - 它没有选择认铃声

我使用 Android API 29 手机(三星 M02s) 请让我知道可能是什么问题 ————代码————

fun setTone() {
    //recorded sound file
    val inputfile = getAudioFile() + ".wav"

    val f = File(inputfile)


    val value = ContentValues()
    value.put(MediaColumns.TITLE,f.name)
    value.put(MediaColumns.SIZE,f.length())
    value.put(MediaColumns.MIME_TYPE,"audio/*")
    value.put(MediaStore.Audio.Media.ARTIST,"jothiring")
    value.put(MediaStore.Audio.Media.DURATION,500)
    value.put(MediaStore.Audio.Media.IS_ALARM,false)
    value.put(MediaStore.Audio.Media.IS_MUSIC,false)
    value.put(MediaStore.Audio.Media.IS_NOTIFICATION,false)
    value.put(MediaStore.Audio.Media.IS_ringtone,true)
    val cr: ContentResolver = contentResolver

    val newUri: Uri? = cr.insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,value)

    if (newUri != null) {
        val inputstream = FileInputStream(inputfile)
        val outputstream = cr.openOutputStream(newUri)
        val buffer = ByteArray(1024)
        var read: Int = inputstream.read(buffer)

        while(read != -1) {
            outputstream?.write(buffer,read)
            read = inputstream.read(buffer)
        }
        inputstream.close()
        outputstream?.close()

            //set default ringtone
        ringtoneManager.setActualDefaultringtoneUri(this,ringtoneManager.TYPE_ringtone,newUri!!)


    }

} //end setTone

解决方法

在 contentvalues 中填写 MediaStore.Audio.Media.DISPLAY_NAME 值然后插入