Configuración de aplicaciones predeterminadas a través de ADB

Tengo un dispositivo Android (Android 4.4) con dos lanzadores. Uno viene con el dispositivo y el otro es casero. Tengo las siguientes preguntas con respecto a este escenario:

  1. ¿Cómo puedo configurar el iniciador predeterminado a través de ADB? (lo mismo que seleccionar uno y pulsar Siempre )
  2. ¿Cómo puedo borrar la selección del iniciador predeterminado a través de ADB? (lo mismo que ingresar a las aplicaciones predeterminadas y borrar los valores predeterminados)

No envíe respuestas o comentarios que no consideren el uso de ADB. No estoy interesado en ninguno de esos.

Además, ya sé cómo deshabilitar uno de los lanzadores a través de ADB ( pm disable app_package_name) y luego volver a habilitarlo, pero esto no es lo mismo que configurar el lanzador predeterminado o configurar la actividad preferida. Puedes ver la diferencia en la siguiente imagen:

ingrese la descripción de la imagen aquí

¿Está permitido el uso de Key Events ? Además, la configuración de las aplicaciones predeterminadas se almacena dentro de /data/system/users/USERID/package-restrictions.xml. Los usuarios no pueden escribirlo sin acceso de root.
@Firelord No, no está permitido el uso de Key Events. Todavía +1 para la idea, tal vez para el futuro. En cuanto al /data/system/users/USERID/package-restrictions.xmlarchivo, eso es exactamente lo que ejecuta pm disable app_package_namey luego pm enable app_package_namehace.

Respuestas (3)

No es necesario desinstalar el iniciador predeterminado, debe conocer el nombre del paquete antes de hacerlo, que si no lo sabe debe obtenerlo con adb shell cmd shortcut get-default-launcher.

Para configurar tu lanzador como predeterminado solo tienes que llamar al siguiente

adb shell cmd package set-home-activity "your.package/.YourLauncherActivity"
¿Cómo se revierte esta configuración?
@Sergio, la forma más rápida es desinstalar la aplicación de inicio y la original se restablece automáticamente como predeterminada. La mejor manera (IMO) es encontrar de antemano, antes de aplicar su lanzador, el original con adb shell cmd shortcut get-default-launchery usar su nombre de paquete y nombre de actividad para restablecerlo manualmente como predeterminado conadb shell cmd package set-home-activity "your.package/.YourLauncherActivity"
@Sergio Tengo que hacer una aclaración sobre mi comentario anterior: si tiene más de 2 aplicaciones de inicio, desinstalar la personalizada probablemente no establecerá automáticamente la original como predeterminada, pero activará el selector donde debe elegir manualmente la uno que quieras Otra razón por la que retroceder sabiendo el nombre de su paquete/actividad de antemano es la mejor manera.
Gracias por la respuesta. Encontrar el paquete predeterminado antes de configurar uno nuevo es una buena idea.

puede eliminar (desinstalar) el programa predeterminado que configuró usando ADB haciendo esto:

adb uninstall app.package  ..... //for example (com.example.homeapp)

Si no quieres eliminar la aplicación... aquí hay un truco rápido para hacerlo:

  • shell adb
  • am start -a android.intent.action.MAIN

De esa manera, tendrá un selector con todas las aplicaciones en sus dispositivos que escucha Main Action

  • Elija cualquier aplicación de pantalla de inicio que desee. luego vaya a la configuración y configúrelo como predeterminado.

Copiado de esta respuesta

Sé que esta no es la respuesta a la pregunta formulada, de todos modos, esto puede ayudar a alguien con respecto a la configuración de enlaces de aplicaciones predeterminados (enlaces profundos):

Android 12+ (desde API 31)

adb shell pm set-app-links --package [PACKAGE_NAME] 1 [URL_HOST]

p.ejadb shell pm set-app-links --package com.company.myapp 1 myapp.company.com

Android 11- (API 30 e inferior)

adb shell pm set-app-link [PACKAGE_NAME] always