Android: cambiar la aplicación de inicio predeterminada

para algunos requisitos específicos debo cambiar la aplicación de inicio predeterminada de Android con mi aplicación de inicio personalizada (una configuración dentro de mi aplicación que alternará inicio predeterminado = mi aplicación o inicio anterior)

No quiero que el usuario viaje configuraciones de Android que son muy complicadas.

¿Alguien puede ayudarme, como dónde registra launcher.apk para la aplicación de inicio predeterminada o cómo cambiar eso?

Lo único que pude encontrar fue esa vieja pregunta:¿Cómo cambiar la aplicación de escritorio predeterminada de Android?

pero no hay respuestas en absoluto.

He visto a HomeSwitcher en el mercado que hace el truco, pero no hay respuesta para el desarrollador que ciertamente podría estar ocupado.

EDITAR

Encontré esto en la webhttp://www.mail-archive.com/[email protected]/msg74167.html

Pero tengo el mismo problema:

Este es mi código:

    private void makePreferred() {
            PackageManager pm = getPackageManager();
            IntentFilter f = new IntentFilter("android.intent.action.MAIN");
            f.addCategory("android.intent.category.HOME");
            f.addCategory("android.intent.category.DEFAULT");
            ComponentName cn = new ComponentName("com.example.android.home", "com.example.android.home.Home");
            pm.addPreferredActivity(f, IntentFilter.MATCH_CATEGORY_EMPTY, null, cn);

Tengoandroid.permission.SET_PREFERRED_APPLICATIONS establecido en el manifiesto. Después de ejecutar el código anterior, los registros afirman que las cosas se han agregado como se esperaba (los mismos registros que cuando marco "Establecer como predeterminado" en la lista de IntentResolver). Sin embargo, cuando procedo haciendo clic en Inicio, la lista todavía aparece y los registros dicen:

INFO/PackageManager(52): Result set changed, dropping preferred
activity for Intent { act=android.intent.action.MAIN cat=
[android.intent.category.HOME] flg=0x10200000 } type null

Entonces parece que el solucionador elimina la entrada predeterminada. ¿Estoy haciendo algo mal o es una medida de seguridad? ¿Cuáles son las ideas detrás de esto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta