Este es mi problema: Solía ejecutar Lineage 16 en mi Pixel3a, que todavía tenía la opción de "perfil" donde podía hacer cosas como "Cuando mi red doméstica no está al alcance, cambiar a otro perfil". Esto lo usé para desactivar el wifi al salir de casa y funcionó muy bien. Importante: Esto no necesitaba que mis servicios de localización estuvieran activados para funcionar.
Ahora he actualizado a Lineage 17.1 (Android 10) y esta opción ha desaparecido. Ahora estoy investigando cómo reconstruir esa funcionalidad. Mi teléfono está rooteado (a través de Magisk), y como desarrollador de software estoy dispuesto a utilizar todas las herramientas que tengo disponibles.
Lo que he probado: He construido una aplicación que comprueba periódicamente si estoy conectado a un SSID específico (ya que eso es todo lo que puedo ver en Android 10 más - "¿Estoy conectado a "mi-ssid"?) y luego se convierte de wifi utilizando el shell y su
así: sudo("svc wifi disable")
. sudo()
es mi función que abre un proceso y habla con el shell.
El problema es que no creo que haya una forma de garantizar que mi aplicación se ejecute siempre, y me gustaría que esto también funcionara cuando la aplicación está apagada Ni siquiera es necesario que sea un SSID específico, me conformaría con que mi resultado fuera "Si no estamos conectados a una red wifi durante más de 3min, apaga el wifi.
Entonces, ¿qué otras opciones tengo? Tasker
Como mi propio intento, funciona pero sólo con los servicios de localización activados, que me gustaría evitar . Qué más puedo hacer. ¿Puedo ejecutar algún tipo de script o un trabajo sólo en el shell o así? ¿Hay algo que pueda hacer con Magisk o Xposed ?
Me alegro de que me ayuden, ya que Internet está lleno de enlaces y consejos, pero todos se refieren a versiones anteriores del sistema operativo. Por cierto, la fuente de mi aplicación (extremadamente borrador) es aquí si alguien tiene curiosidad.