2010-10-07 45 views
11

Pregunta: He encontrado que java.net.URI tiene una opción create (String uri) pero la android.net.uri no.Cómo convertir una cadena a android.net.Uri

Más específico: Estoy tratando de obtener la salida del RingtonePicker del RingtoneManager y configurarlo como el tono de llamada predeterminado con SetActualDefaultRingtoneUri; siendo que

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE 
        ,RingtoneManager.TYPE_RINGTONE); 

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE 
        , "Select Tone For Rainy Days"); 

startActivityForResult(intent, 0); 

RingtoneManager.setActualDefaultRingtoneUri(this 
        ,RingtoneManager.TYPE_RINGTONE 
        ,RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 

problema, RingtoneManager.EXTRA_RINGTONE_PICKED_URI devuelve una cadena no un URI. Puede haber una manera mejor que convertir la cadena a un Uri. No puedo encontrar una razón por la cual java.net.URI puede hacerlo y android.net.Uri no puede.

¡Cualquier sugerencia sería apreciada!

Gracias

+1

ver este si le ayuda http://stackoverflow.com/questions/3487389/java-convert- string-to-uri/3487413 # 3487413 – ccheneson

Respuesta

21

supongo que desea utilizar el método de la clase parseandroid.net.uri. Devuelve un URi para la cadena codificada suministrada.

android.net.uri parse()

+0

Gracias chicos pero encontré mi solución. –

+1

Uri uri = data.getParcelableExtra (RingtoneManager.EXTRA_RINGTONE_PICKED_URI); \t RingtoneManager.setActualDefaultRingtoneUri (this, RingtoneManager.TYPE_RINGTONE, uri); –

+0

¡Gracias! Parcelable es el Serializable liviano/android .... – tom

1

Gracias chicos, pero esto es como acabé haciendo que funcione

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 
RingtoneManager.setActualDefaultRingtoneUri(this,RingtoneManager.TYPE_RINGTONE,uri);