Android: guarde el sonido como tono de llamada y notificación

Estoy guardando un sonido de mi aplicación para usarlo como tono de llamada o sonido de notificación. Aquí hay parte de mi código, tomado deesta página:

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, soundName);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");
values.put(MediaStore.Audio.Media.ARTIST, "artist");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);

Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
this.getContentResolver().insert(uri, values);

Tengo entendido que el sonido se guardará, así como un tono de llamada, un sonido de notificación y una alarma, ya que las banderas están configuradas en "verdadero". Al menos en el emulador, esto funciona, pero en el dispositivo real, el sonido solo aparece en la lista de tonos de llamada, y no tengo idea de por qué.

EDITAR: He intentado investigar más a fondo: eliminar la línea con "IS_RINGTONE" no cambiará nada (en caso de que solo se pueda usar una bandera a la vez), el sonido no aparece en la lista con la notificación. sonidos

Cualquier ayuda es apreciada.

Saludos cordiales, Select0r

Respuestas a la pregunta(3)

Su respuesta a la pregunta