2012-07-25 12 views
10

Estoy escribiendo una aplicación que intenta reemplazar el estándar/stock messenger. Entonces necesito definir el tono de llamada predeterminado para los mensajes entrantes. Me refiero al tono de llamada de notificación SMS entrante.¿Cómo obtener el tono de llamada URI actual/predeterminado para SMS entrantes?

¿Alguien sabe cómo conseguirlo?

+0

estos enlaces pueden ayudarlo http://stackoverflow.com/questions/3387556/incoming-call-dynamically-override-default-ringtone http://stackoverflow.com/questions/2092470/android-detect-which-ringtone -is-actually-playing-ringtone-isplaying-problem? rq = 1 –

Respuesta

10

Por defecto notificación de sonido:

String defaultPath = Settings.System.DEFAULT_NOTIFICATION_URI.getPath(); 
+1

No funciona con marshmallow –

+0

mismo aquí, no funciona Marshmallow en adelante – sud007

11

Para recuperar el Ringtone objeto del tono de llamada predeterminado, utilice el RingtoneManager:

Ringtone ringtone = RingtoneManager.getRingtone(context, Settings.System.DEFAULT_RINGTONE_URI); 

Si el usuario ha cambiado el tono de llamada predeterminado a un tono de llamada proporcionada en una aplicación de mensajes de terceros, AFAIK no puede acceder al nuevo tono de llamada a menos que la aplicación de terceros exhiba sus tonos de llamada a través de ContentProvider.

2

Si está utilizando las clases Notification.Builder o NotificationCompact.Builder, llamar al setSound(Settings.System.DEFAULT_NOTIFICATION_URI) en el generador debería ser el truco.

Eso reproducirá el tono de notificación predeterminado que el usuario ha elegido cuando el sistema muestra su notificación.

1

El que me ayudó es RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION).

+0

No funciona con malvavisco –

Cuestiones relacionadas