No he podido averiguar la forma de averiguar cuándo una aplicación te deja en la pantalla de inicio si pulsas la tecla Atrás, a menos que hayas lanzado la aplicación desde el App Launcher. Pero, puedo asegurarme de que la tecla Atrás se deshabilite si sólo la aplicación está mostrando su página principal/primera. Necesitamos Tasker y AutoInput para hacer el trabajo. Este último da 7 días de prueba (acceso completo).
Nota: Se requiere acceso a root para el siguiente método .
En primer lugar, tenemos que averiguar el nombre de la actividad principal de su aplicación. Puedes probar con una aplicación como QuickShortcutMaker para mostrar la actividad principal de una aplicación.
(Haga clic en la imagen para ampliarla)
El formato es <PKG_NAME>/<MAIN_ACTIVITY_NAME>
como com.android.chrome/com.google.android.apps.chrome.MAIN
Como alternativa, puede utilizar adb para hacer el trabajo ( Busybox necesario) a condición de que conocer el nombre del paquete (PKG_NAME) de la aplicación ,
adb shell
dumpsys package PKG\_NAME | grep -A1 "android.intent.action.MAIN:" | awk '{print $2}' | tail -n 1 | tr -d '/'
Ahora que tenemos la actividad principal vamos a proceder hacia Tasker.
Instrucciones para Tasker y AutoInput
-
Habilitar el servicio de accesibilidad para ambas aplicaciones desde Escenarios → Accesibilidad .
-
Ir a Tasker → Tareas Tareas y crear una tarea llamada Disable Back Key
.
-
Cree las siguientes acciones dentro de él:
-
Código → Ejecutar Shell ,
-
Comando : dumpsys window | grep "mCurrentFocus" | rev | cut -d '/' -f 1 | tr -d '}' | rev
-
Consulte Utilizar root
-
Almacenar la salida en : %CurrentFocus
Simplemente estamos almacenando la actividad que actualmente está en foco.
-
Tarea → Si ,
-
%CurrentFocus
eq
MAIN_ACTIVITY_NAME
Cambiar MAIN_ACTIVITY_NAME
con el nombre de la actividad que anotó anteriormente.
-
Plugin → AutoInput → Modos ,
-
Configuración :
-
Supresión de teclas : Activar
-
Claves : Volver
-
Tiempo de espera (segundos) : Ninguno
-
Tarea → Otra → repite el último paso pero cambia Supresión de llaves: Desactivar .
-
Crear un perfil basado en eventos de Evento → UI → Nueva ventana ,
-
Tipo de ventana : Pantalla completa
-
Prioridad : El más alto
-
Vincular la tarea Disable Back Key
en él.
-
Cambia el nombre del perfil a AutoInput disable Back Key
.
-
Cree una nueva tarea independiente denominada Enable Profile
.
-
Crear la acción 3 del paso 3.
-
Crear otra acción a partir de Tasker → Estado del perfil :
-
Nombre : elegir
AutoInput disable Back Key
-
Establecer : En
-
Cree una tarea más llamada Disable Profile
.
-
Repita el paso 9 pero cambie Set: Off .
-
Cree la acción 3 del paso 3 pero cambie Supresión de teclas: Desactivar .
-
Crear un perfil basado en la aplicación de Aplicación → YOUR_APP,
- Añadir Activar el perfil como Introducir tarea
- Añadir Desactivar perfil como Tarea de salida
-
Desactivar AutoInput deshabilita la Tecla Atrás porque no queremos utilizar la CPU todo el tiempo en el procesamiento de este perfil en cada nueva formación de ventanas por parte de Android.
Así es. Inicia la aplicación que seleccionaste antes y verás que la tecla Atrás no funciona cuando se abre la actividad principal de tu aplicación. Ve a cualquier otra actividad de la aplicación, como las preferencias o los ajustes, y la tecla Atrás volverá a funcionar normalmente.
Hay algo de buenas y malas noticias para los propietarios de dispositivos Lollipop no rooteados.
Buenas noticias : Dicho método puede funcionar también sin acceso Root. adb funcionando en modo inalámbrico y conectado en loopback puede hacer el trabajo.
Malas noticias : Hay demasiadas trampas en su uso y no puedo (léase: no tengo tiempo) trabajar para ocuparme de ellas.
Publica una respuesta si te libras de los problemas con adb .