Necesito configurar un servicio de cierre de aplicaciones para dispositivos Android 9 sin root utilizando Automate. El servicio tiene que iniciarse automáticamente al encender el dispositivo y seguir enviando comandos de cierre a servicios del sistema seleccionados (!) en intervalos regulares a menos que dichos servicios estén en foco/en primer plano.
Desafortunadamente, configurar y ejecutar Automate parece innecesariamente complicado. He utilizado adb
extensamente, así que no hay problema allí. Sin embargo, el paso 5 en el manual de instalación dice
- En el PC, ejecuta el comando de shell
adb tcpip 5555
. Este paso tiene que repetirse después de cada reinicio del dispositivo.
Una vez emparejado/autorizado, el servicio se iniciará automáticamente cuando se utilice por primera vez, por ejemplo, por un bloque que lo utilice, luego se ejecutará en segundo plano hasta que el sistema lo detenga, el dispositivo se reinicie, o la aplicación se desinstale o se actualice.
Tener que conectar un dispositivo móvil a un PC después de cada reinicio (por ejemplo, debido a una batería vacía) es completamente imposible y contradice el uso de Android en sí mismo. ¿Existe una manera de configurar Automate completamente localmente desde dentro de Android, o al menos solo una vez desde un PC al principio y luego hacer que la aplicación se ejecute automáticamente incluso después de un reinicio del dispositivo?
Ya he configurado un flujo simple de Automate como ejemplo mínimo y otorgado todos los privilegios necesarios, como acceso a la tarjeta SD, ejecución de comandos de shell, y acceso al servicio de accesibilidad de Samsung. Además, la depuración por USB está habilitada en las opciones para desarrolladores. Pero al ejecutar el flujo, obtengo los siguientes errores en la salida del registro:
Inicio del flujo
Retraso
¿Aplicación en primer plano?
Cerrar aplicación
Error al iniciar el servicio privilegiado
java.util.concurrent.CancellationException: Por favor ejecuta: sh /sdcard/Android/data/com.llamalab.automate/cache/start.sh
java.util.concurrent.TimeoutException: Tiempo de espera de inicio del servicio
Detenido por falla