Cómo configurar el tono de timbre con RingtoneManager.ACTION_RINGTONE_PICKER?

Trato de encontrar la solución aquí, pero sólo hay solución para el archivo propio / seleccionado, no para el código cuando llamo selector. Utilizo el siguiente código cuando el usuario pulsa el botón:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select ringtone for notifications:"); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION); ActivityCurrent.this.startActivityForResult(intent,999); 

Este selector de ringtone show, el usuario puede elegir lo que quiere ringtone, pero me faltan dos cosas: – no muestra el tono de llamada actual cuando se abre – no guardar ringtone cuando se hace clic en OK


Todavía no puedo encontrar la manera de abrir RINGTONE_PICKER con el tono de timbre actual ya seleccionado. ¿Alguna idea?

 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select ringtone for notifications:"); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION); ActivityCurrent.this.startActivityForResult(intent,999); 

Debe implementar onActivityResult() para recibir el resultado de la selección del usuario y, a continuación, guardarlo.

 if (resultCode == RESULT_OK) { Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); if (uri != null) { String ringTonePath = uri.toString(); } 

Aquí un ejemplo: http://www.ceveni.com/2009/07/ringtone-picker-in-android-with-intent.html

EDIT: actualizar

 RingtoneManager.setActualDefaultRingtoneUri( myActivity, RingtoneManager.TYPE_RINGTONE, uri); 

Debes llamar a esto 🙂

 Intent intent=new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtone); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtone); startActivityForResult(intent , 1); 

"Ringtone" es el uri en el que estoy guardando el tono seleccionado en onActivityResult() .

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case 1: ringtone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); // Toast.makeText(getBaseContext(),RingtoneManager.URI_COLUMN_INDEX, // Toast.LENGTH_SHORT).show(); break; default: break; } } } 

Espero que te ayude. Hit respondió si lo hace.

Este código mostrará el tono predeterminado que el usuario establece antes cuando se utiliza el selector de tonos.

Utilice debajo del código en el botón para la intención del tono de llamada.

 public void pickRingtone(View view) { // TODO Auto-generated method. stub Intent intent = new. Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Ringtone"); // for existing ringtone Uri urie = RingtoneManager.getActualDefaultRingtoneUri( getApplicationContext(), RingtoneManager.TYPE_RINGTONE); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, urie); startActivityForResult(intent, 5); } 

El código es perfecto y funciona para mí. Pero te olvidaste de mencionar los permisos necesarios … aquí está. Probar este código .. espero que ayude

 <uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" ></uses-permission> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" ></uses-permission> 
  • Simple Selector de directorio Android - ¿Cómo?
  • Desactivar el color de resaltado de fondo del elemento de menú en android
  • Elemento de ListView Estado de LongClick para el selector
  • Android: Obtener accesos directos instalados
  • Android: textColor del botón deshabilitado en el selector no se muestra?
  • ¿Cómo configurar diferentes temas para el selector de botones?
  • Aplicar el selector android para un niño específico de listview y desactivar el selector en los otros niños en el mismo elemento de lista
  • Uso del selector de dispositivos Android Bluetooth
  • ¿Cómo puedo agregar un nuevo botón en el widget del selector de fechas en android?
  • Selector de fondo de botón de Android
  • ¿Cuál es el valor predeterminado para presionar un elemento de lista
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.