El selector de pantalla de inicio/lanzador de Android no muestra la opción "usar de forma predeterminada para esta acción"

Estoy tratando de iniciar el cuadro de diálogo del selector de pantalla de inicio/lanzador mediante programación usando la siguiente intención:

Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(Intent.createChooser(i, "Set My HomeScreen as default"));

Pero, lamentablemente, el cuadro de diálogo que aparece con la lista de lanzadores de pantalla de inicio instalados no tiene la Utilizar de forma predeterminada para esta acción opción en la parte inferior del cuadro de diálogo. La siguiente imagen muestra cómo se ve:

Pantalla de inicio

Curiosamente, después de elegir mi pantalla de inicio en el cuadro de diálogo del selector anterior, si presiono el botón de inicio en esa pantalla, Android muestra automáticamente un cuadro de diálogo similar que, de hecho, tiene el Usar por defecto para esta opción en la parte inferior del cuadro de diálogo. Así es como se ve:

Selector de pantalla de inicio

No tengo ni idea de lo que está mal con el código anterior, debe ser un error tonto que no puedo detectar por mí mismo.

si alguien puede arrojar algo de luz, seria de gran ayuda.

Muchas Gracias

preguntado el 22 de mayo de 12 a las 21:05

2 Respuestas

createChooser() no produce una casilla de verificación "predeterminada para esta acción". Si desea la casilla de verificación, pase una intención a startActivityForResult()

contestado el 22 de mayo de 12 a las 22:05

Sin embargo, startActivity no tiene la capacidad de establecer mi propio título: djdance

Así es como lo haces en ICS:

final PackageManager packageManager = this.getPackageManager();
ComponentName componentName = new ComponentName(this, MainActivity.class);
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

Intent selector = new Intent(Intent.ACTION_MAIN);
selector.addCategory(Intent.CATEGORY_HOME);
startActivity(selector);

Respondido el 06 de junio de 14 a las 16:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.