A continuación los pasos y el código:
1.- Primero de todo creamos el Intent y luego realizamos la acción de iniciar una Activity esperando el resultado.
private final int TONE_SELECTED = 1;
*********************
Intent intent = new Intent(
RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_NOTIFICATION);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
"Selecciona el to d'alarma /*Título del cuadro de diálogo*/");
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
(Uri) null);
startActivityForResult(intent, TONE_SELECTED);
2.- En el result nos guardamos la URI (dirección) del tono para futuros usos. En este caso lo guardamos usando SharedPreferences.
public static final String PREFERENCE_TONE_URI = "toneUri";
public static final String PREFERENCE_TONE_NAME = "toneName";
public static final String PREFERENCES_NAME = "PREF_NAME";
*********************
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case TONE_SELECTED:
String toneUri,
toneName;
try {
Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
Ringtone ringtone = RingtoneManager.getRingtone(this, uri);
if (uri != null) {
toneUri = uri.toString();
toneName = ringtone.getTitle(this);
SharedPreferences preferences = getSharedPreferences(
PREFERENCES_NAME, Context.MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(PREFERENCE_TONE_URI, toneUri);
editor.putString(PREFERENCE_TONE_NAME, toneName);
editor.commit();
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "No se ha seleccionado ningún tono", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
Finalmente, una imagen donde se puede apreciar el cuadro de diálogo:
It works!
Roger Sala,
Muy buenos los post
ResponderEliminarComo sería igual para dialogos de mensajes para copiar y pegar imagenes, gracias.
Buenos Jorge,
ResponderEliminarMuchas gracias por visitar el blog. ¿Te refieres a tener un cuadro de diálogo para poder seleccionar imágenes en el cuadro y luego copiar/pegar?