Cómo obtener el nombre del tono en Android?

Permito que mi usuario elija un tono de llamada para notificaciones en mi aplicación. Quiero almacenar el URI del sonido junto con el título legible del sonido.

Hasta ahora el código URI funciona muy bien:

Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 

Pero cuando intento obtener el título, y lo pongo como un texto de botón, no consigo nada. Parece que no tiene título?

 String title = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_TITLE); button.setText(title); 

Pero el texto de mi botón está vacío. Si lo hago:

 button.setText(uri.toString()); 

Entonces veo el uri perfectamente. ¿Debo tratar de obtener el título de la URI? Gracias

Esto debería conseguirlo:

 Ringtone ringtone = RingtoneManager.getRingtone(this, uri); String title = ringtone.getTitle(this); 

Consulte http://developer.android.com/reference/android/media/Ringtone.html para obtener la documentación, pero el cuento: Ringtone.getTitle (Contexto ctx);

Personalmente tuve un serio problema de rendimiento cuando intenté la respuesta aceptada, tomó alrededor de 2 segundos para cargar una lista de 30 tonos de llamada. Lo cambié un poco y funciona 10 veces más rápido:

 uri = ringtoneMgr.getRingtoneUri(cursor.getPosition()); ContentResolver cr = getContext().getContentResolver(); String[] projection = {MediaStore.MediaColumns.TITLE}; String title; Cursor cur = cr.query(uri, projection, null, null, null); if (cur != null) { if (cur.moveToFirst()) { title = cur.getString(0); cur.close(); 

Tuve problemas con 'MediaPlayer finalizado sin ser lanzado'. Yo uso esto:

 Cursor returnCursor = getContentResolver().query(uri, null, null, null, null); returnCursor.moveToFirst(); String title = returnCursor.getString(returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)); returnCursor.close(); 

Consulte la documentación en https://developer.android.com/training/secure-file-sharing/retrieve-info.html .

  • ¿Cómo puedo añadir el sonido de notificación de mi aplicación a la lista de sonidos de notificación?
  • Reproducción de un tono de timbre de una actividad se detiene abruptamente
  • Lista de selector de favoritos de Android con la opción predeterminada seleccionada
  • Eliminación de un tono de llamada mediante programación en android
  • Configurar el tono de llamada personalizado de contacto, ¿cómo?
  • ¿Cómo puedo agregar los tonos de llamada personalizados de mi aplicación en la carpeta res / raw a un ringtonepreference
  • Android: guarda el sonido como tono de llamada y notificación
  • Uso de Intents para transmitir datos de tonos de llamada
  • Tono de tono juega una y otra vez (bucle infinitamente)
  • ¿Cómo acceder a todas las listas de tonos en el teléfono Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.