如何使用RingtoneManager在呼叫和通知上添加相同的铃声?

我正在创建一个用于将歌曲设置为通话的应用程序。可以为标准呼叫以及警报和通知设置铃声。以及每个人的联系方式。

我正在使用RingtoneManager.setactualDefaultRingtoneUri()。

fun setRingtone(localAudio: Song,typeManager: Int) {

val context = App.instance
if (context.contentResolver == null) {
    throw NullPointerException("content resolver is null")
}
val cr = context.contentResolver

val values = Contentvalues()
values.put(MediaStore.MediaColumns.DATA,localAudio.data)
values.put(MediaStore.MediaColumns.TITLE,localAudio.title)
values.put(MediaStore.MediaColumns.SIZE,File(localAudio.data).length())
values.put(MediaStore.MediaColumns.MIME_TYPE,"audio/mp3")
values.put(MediaStore.Audio.Media.ARTIST,localAudio.artist)
values.put(MediaStore.Audio.Media.DURATION,localAudio.duration)
values.put(MediaStore.Audio.Media.IS_RINGTONE,true)
values.put(MediaStore.Audio.Media.IS_ALARM,true)
values.put(MediaStore.Audio.Media.IS_NOTIFICATION,true)
values.put(MediaStore.Audio.Media.IS_MUSIC,true)

val uri = MediaStore.Audio.Media.getcontenturiForPath(localAudio.data)

cr.delete(uri,MediaStore.MediaColumns.DATA + "=\"" + localAudio.data + 
"\"",null)
val newUri = cr.insert(uri,values)

if (newUri == null) {
    throw NullPointerException("uri is null")
} else {

    when (typeManager) {
        TYPE_RINGTONE -> setRingtone(typeManager,context,newUri)
        TYPE_ALARM -> setRingtone(typeManager,newUri)
        TYPE_NOTIFICATION -> setRingtone(typeManager,newUri)
    }
}
}

fun setRingtone(type:Int,context: Context,uri:Uri){
RingtoneManager.setactualDefaultRingtoneUri(context,type,uri)
}

根据我的期望,此代码应将歌曲设置为通知,呼叫或闹钟。问题是,如果这首歌已经在通话中,并且我发出了通知,则该歌曲将从通话中消失。而且仅保留在通知上。

wb1317 回答:如何使用RingtoneManager在呼叫和通知上添加相同的铃声?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3168289.html

大家都在问