Android detecta el tono de llamada que se está reproduciendo (tono de llamada. Problema de reproducción)

En Android, tengo un problema al tratar de averiguar qué tono de timbre se está reproduciendo en realidad (no estoy tratando de detectar el tono de llamada predeterminado, sino el que se está reproduciendo, ya que puede ser diferente debido a que el usuario configuró un tono de llamada en particular para un teléfono en particular). contacto).

Estoy usando la función Ringtone.isPlaying () mientras recorro (con éxito) todos los tonos de llamada disponibles desde RingtoneManager. Sin embargo, ninguno de ellos devuelve verdadero a Ringtone.isPlaying ()! ¿Alguien tiene una pista de lo que estoy haciendo mal? Aquí está el ejemplo de código que definitivamente se está ejecutando mientras se reproduce el anillo:

RingtoneManager rm = new RingtoneManager(this); // 'this' is my activity (actually a Service in my case)
if (rm != null)
{
    Cursor cursor = rm.getCursor();
    cursor.moveToFirst();
     for (int i = 0; ; i++)
     {
            Ringtone ringtone = rm.getRingtone(i);  // get the ring tone at this position in the Cursor
            if (ringtone == null)
            break;
        else if (ringtone.isPlaying() == true)
                return (ringtone.getTitle(this));   // *should* return title of the playing ringtone
    }
    return "FAILED AGAIN!"; // always ends up here
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta