Al hacer startActivity()
con selector, Android listará todas las aplicaciones habilitadas para manejar su Intent
junto con opciones para establecer esta asignación permanente o una vez (en ICS es "Siempre "y" Solo una vez "botón de acción, en 2.x es la casilla de verificación). Sin embargo, para este código:No se puede hacer startActivity() con Selector preguntando solo una vez por aplicación
public class Redirector {
public static void showActivityWithChooser(Context context, int chooserLabelTitleId, Intent intent) {
try {
context.startActivity(Intent.createChooser(intent,
context.getResources().getString(chooserLabelTitleId)));
} catch(Exception e) {
e.printStackTrace();
}
}
public static void viewInExternalApplication(Context context, String url) {
Intent intent = new Intent( Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
showActivityWithChooser(context, R.string.open_chooser_title, intent);
}
}
no veo | botones de "Siempre" Sólo una vez y no puedo hacer mi selección permanente (Tengo aplicaciones enumeradas única y puede disparar cualquier tocándolo). ¿Qué elementos básicos pasé por alto que hicieron que Android no pudiera hacer persistente la elección del usuario?
Ver las fotografías: a la izquierda de diálogo es lo que me gustaría ver, pero es justo lo que me pasa ahora (diferente número de aplicaciones tanto en los diálogos es irrelevante):
'Siempre' significa que la selección es permanente. Tu aplicación no tiene forma de controlar este diálogo, es parte de Android directamente. – mah
@mah: Te perdiste el punto. –
De hecho lo hice. Sin embargo, la segunda mitad de mi comentario permanece; este no es un diálogo que puedes controlar desde tu aplicación. El problema es que está llamando a showActivityWithChooser, que no está destinado a permitir que el usuario cambie su valor predeterminado, sino que está destinado a obligar al usuario a elegir. – mah