2009-03-08 19 views

Respuesta

47

Dependiendo de sus necesidades, hay un par de alternativas para mostrar la pantalla de configuración de 'Tonos' desde su aplicación.

Si desea abrir la pantalla de preferencias reales que normalmente está disponible a través de la configuración del sistema, permitiendo que el usuario modifique la configuración de tono de llamada universal del teléfono a través de su aplicación, puede usar la constante ACTION_SOUND_SETTINGS de la clase android.provider.Settings para crear un nueva intención de iniciar la actividad de configuración de sonido.

startActivityForResult(new Intent(android.provider.Settings.ACTION_SOUND_SETTINGS), 0); 

Si desea seleccionar un tono personalizado para utilizar en su aplicación es necesario agregar un RingtonePreference en el archivo de definición preferences.xml, así:

<RingtonePreference 
    android:key="alerts_ringtone" 
    android:title="Select ringtone" 
    android:showDefault="true" 
    android:showSilent="true" 
    android:ringtoneType="" 
/> 

podrás obtener el URI a la preferencia seleccionada en la aplicación predeterminada SharedPreferences usando alerts_ringtone como la clave.

La última técnica utiliza la clase PreferenceActivity para alojar las opciones de preferencia. No describiré eso en detalle aquí, ya que la documentación de Android tiene un good writeup y un código de muestra.

+0

Gracias. Quiero abrir la pantalla de Preferencias. Entonces, ¿la ejecución de la declaración de Intención permitirá al usuario establecer un tono de llamada o, tan pronto como el usuario seleccione un tono de llamada, volverá a la aplicación y la aplicación tendrá que configurarlo? – lostInTransit

+1

La ejecución de la declaración de intención permitirá al usuario establecer el tono de llamada; su aplicación no tendrá que hacer nada para manejarlo por separado. –

+1

Nota: según la segunda respuesta hay un error en el primer fragmento de código, se necesita un corchete de cierre justo después del primer parámetro en el constructor de intención. Solo edita pero debe tener más de 6 caracteres :) – Brizee

6

Esta es una solución alternativa para el problema. También estoy trabajando en la misma tarea, pero el código anterior no funciona para mí. He cambiado el código a

startActivityForResult(new Intent(android.provider.Settings.ACTION_SOUND_SETTINGS), 0); 

y ahora funciona.

+0

Esto no funciona para Nougat, por favor ayuda. la aplicación no se abre – developer

Cuestiones relacionadas