14 votos

Estableciendo 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 establecer el lanzador predeterminado a través de ADB? (igual que seleccionar uno y presionar Siempre)
  2. ¿Cómo puedo borrar la selección del lanzador predeterminado a través de ADB? (igual que ingresar a Aplicaciones Predeterminadas y borrar los valores predeterminados)

Por favor, no envíen respuestas ni comentarios que no tengan en cuenta el uso de ADB. No estoy interesado en ninguno de esos.

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

introduce una descripción de la imagen aquí

2 votos

¿Se permite el uso de Eventos de teclas? Además, la configuración para aplicaciones predeterminadas se almacena dentro de /data/system/users/USERID/package-restrictions.xml. Los usuarios no pueden escribir en él sin acceso de root.

0 votos

@Firelord No, no está permitido el uso de Eventos de Tecla. Aún así, +1 por la idea, tal vez para el futuro. En cuanto al archivo /data/system/users/USERID/package-restrictions.xml, eso es exactamente lo que hace correr pm disable app_package_name y luego pm enable app_package_name.

6voto

Reddog Puntos 121

No es necesario desinstalar el lanzador predeterminado, debes saber el nombre de su paquete antes de hacerlo, lo cual si no sabes debes obtenerlo con adb shell cmd shortcut get-default-launcher.

Para establecer tu lanzador como predeterminado solo debes llamar lo siguiente

adb shell cmd package set-home-activity "tu.paquete/.TuActividadLanzadora"

0 votos

¿Cómo se revierte esta configuración?

0 votos

@Sergio, la forma rápida es desinstalar tu aplicación de inicio y la original se restablecerá automáticamente como predeterminada. La mejor forma (en mi opinión) es encontrar de antemano, antes de aplicar tu iniciador, la original con adb shell cmd shortcut get-default-launcher y usar su nombre de paquete y nombre de actividad para restablecerla manualmente como predeterminada con adb shell cmd package set-home-activity "tu.paquete/.TuActividadDeInicio"

0 votos

@Sergio Tengo que hacer una aclaración sobre mi comentario anterior: si tienes más de 2 aplicaciones de lanzamiento de inicio, desinstalar tu personalizada probablemente no establecerá automáticamente la original como predeterminada, sino que activará el selector donde debes elegir manualmente la que deseas. Otra razón por la que volver a establecerla sabiendo su nombre de paquete/actividad de antemano es la mejor manera.

2voto

User Rebo Puntos 111

Sé que esto 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 predeterminadas (enlaces profundos):

Android 12+ (desde API 31)

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

por ejemplo adb shell pm set-app-links --package com.company.myapp 1 myapp.company.com

Android 11- (API 30 y anteriores)

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

1voto

Deepak Gangwar Puntos 101

Puedes eliminar (Desinstalar) el programa predeterminado que configuraste usando ADB haciendo lo siguiente:

adb uninstall app.package  ..... //por ejemplo (com.example.homeapp)

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

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

De esta manera tendrás un selector con todas las aplicaciones en tus dispositivos que escuchan la Acción Main

  • Elige la aplicación de pantalla de inicio que desees. luego ve a ajustes y configúrala como predeterminada.

Copiado de esta respuesta

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X