2012-09-12 19 views
19

puedo llevar con éxito un selector de tono y obtener un URI resultante con el siguiente código ...selector de tono - de botones circulares

selsound_button.setOnClickListener(new OnClickListener() 
    { 
     public void onClick(View arg0) 
     { 
      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_ALARM); 
      startActivityForResult(intent, 999); 
     } 
    }); 

... pero no he podido encontrar la manera de hacer la siguiente:

Dado que ya conozco el uri actual, deseo decirle al selector que este está actualmente seleccionado para que pueda tener el botón de opción correcto resaltado. Por el momento, ninguno de los botones de radio se seleccionan hasta que presiono uno de ellos.

Respuesta

22

es necesario agregar

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, currenturi); 

para configurar el botón de radio

6

Este es el código exacto para usted.

selsound_button.setOnClickListener(new OnClickListener() { 

     public void onClick(View arg0) { 
      final Uri currentTone= RingtoneManager.getActualDefaultRingtoneUri(YourActivity.this, RingtoneManager.TYPE_ALARM); 
      Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM); 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone"); 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, currentTone); 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false); 
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true); 
      startActivityForResult(intent, TONE_PICKER); 
     } 

    }); 
+0

Esta solución agregará un nuevo elemento "Tono de llamada predeterminado" y lo seleccionará. pero deseo que seleccione el artículo exacto. Si solo cambias EXTRA_RINGTONE_SHOW_DEFAULT a falso, parece que no se seleccionará nada. – lucky1928

+0

En android 4.2.2 esto muestra un cuadro de diálogo en la pantalla y permite al usuario tomar la acción requerida. ¿Podemos colocar ese cuadro de diálogo en pantalla completa en ese momento? –