En resumen
Automatización de un mosaico de Ajustes Rápidos ya visible
# Click on a TileService of the specified component
cmd statusbar click-tile com.package.name/.service.QuickSettingsTileComponent
# You may need to expand the status bar to show the quick settings
# before it'll apply. Not sure why.
cmd statusbar expand-settings
sleep 0.25 # 250 ms or shorter may be enough
cmd statusbar collapse
Añadir un azulejo de configuración rápida y eliminarlo después de hacer clic
# Expand, add tile, wait for it to initialize
cmd statusbar expand-settings
cmd statusbar add-tile com.package.name/.service.QuickSettingsTileComponent
sleep 0.15
# Click tile, wait for it to react
cmd statusbar click-tile com.package.name/.service.QuickSettingsTileComponent
sleep 0.25
# Remove tile, collapse
cmd statusbar remove-tile com.package.name/.service.QuickSettingsTileComponent
cmd statusbar collapse
Recorrido guiado
Encontrar el nombre del paquete y el componente
Omita esto si ya sabe cómo encontrar el servicio QuickSettings Tile.
-
Instale una aplicación como apps_Packages Info [F-Droid] para navegar por la lista de aplicaciones instaladas y todos los servicios.
-
Busque la aplicación cuyo mosaico desea alternar y abra los detalles de la aplicación pulsando sobre ella
- Ejemplo:
Digital Wellbeing
es com.google.android.apps.wellbeing
-
Ampliar la Services
en la página de detalles de la solicitud
-
Encuentre el servicio de azulejos, que tendrá el permiso android.permission.BIND_QUICK_SETTINGS_TILE
y anotar el nombre del componente
- Ejemplo:
Grayscale
El azulejo QS es .screen.ui.GrayscaleTileService
-
Anote el nombre completo del paquete y el nombre del componente, y rellene el siguiente comando:
cmd statusbar click-tile com.package.name/.service.QuickSettingsTileComponent
Ejemplo 1: para alternar Digital Wellbeing
's Grayscale
Azulejos QS
cmd statusbar click-tile com.google.android.apps.wellbeing/.screen.ui.GrayscaleTileService
Ejemplo 2: para alternar Digital Wellbeing
's Focus Mode
Azulejos QS
cmd statusbar click-tile com.google.android.apps.wellbeing/.focusmode.quicksettings.FocusModeTileService
Automatización de la ficha de ajustes rápidos
Alternar el mosaico de Ajustes Rápidos a través de click-tile
no se aplicará hasta que se amplíe la sección de Ajustes Rápidos. En cuanto la sección de Ajustes Rápidos se revele, funcionará, incluso si el propio azulejo está colocado en una página secundaria de azulejos de ajustes rápidos (por ejemplo, la página 2).
Esto funciona incluso cuando la pantalla está bloqueada si el azulejo QS no requiere ser desbloqueado para alternar. Sin embargo, la pantalla debe estar encendida.
Pasos generales
Si el azulejo de Ajustes Rápidos ya está añadido
- Encender la pantalla si está apagada
- Ampliar los ajustes rápidos a través de
cmd statusbar expand-settings
- Ejecutar
cmd statusbar click-tile [component]
comando descubierto arriba
- Espere un breve retraso, por ejemplo
250 ms
- Opcionalmente, cerrar la barra de estado mediante
cmd statusbar collapse
- Opcionalmente, apagar la pantalla si no estaba ya encendida
Si no quieres mantener el azulejo de la configuración rápida
- Encender la pantalla si está apagada
- Ampliar los ajustes rápidos a través de
cmd statusbar expand-settings
- Añade el mosaico de Ajustes Rápidos a través de
cmd statusbar add-tile [component]
- Espere un breve retraso, por ejemplo
150 ms
- Ejecutar
cmd statusbar click-tile [component]
comando descubierto arriba
- Espere un breve retraso, por ejemplo
250 ms
- Ejecutar
cmd statusbar remove-tile [component]
- Opcionalmente, cerrar la barra de estado mediante
cmd statusbar collapse
- Opcionalmente, apagar la pantalla si no estaba ya encendida
Ejemplo de shell script (con la contrapartida de Tasker)
Si el azulejo de Ajustes Rápidos ya está añadido
# Wake up device
input keyevent KEYCODE_WAKEUP
#
# Tasker: Add Action -> Display -> Turn On
# Expand the Quick Settings section of the status bar
cmd statusbar expand-settings
#
# Tasker: Add Action -> Code -> Run Shell, copy above
# Click on a TileService of the specified component
cmd statusbar click-tile com.package.name/.service.QuickSettingsTileComponent
#
# Tasker: Add Action -> Code -> Run Shell, copy above, check "Use Root"
# Wait for click to register, 250 ms or shorter may be enough
sleep 0.25
#
# Tasker: Add Action -> Task -> Wait, then set delay to 250 ms
# Optional: collapse status bar
# This won't work when on the lockscreen, but turning the screen off
# also collapses the status bar for you.
cmd statusbar collapse
#
# Tasker: Add Action -> Code -> Run Shell, copy above
# Optional: put device to sleep
# (Up to you: only turn off if the screen wasn't already on.)
input keyevent KEYCODE_POWER
#
# Tasker: Add Action -> Display -> Turn Off, enabling "Lock"
Si no quieres mantener el azulejo de la configuración rápida
# Wake up device
input keyevent KEYCODE_WAKEUP
#
# Tasker: Add Action -> Display -> Turn On
# Expand the Quick Settings section of the status bar
cmd statusbar expand-settings
#
# Tasker: Add Action -> Code -> Run Shell, copy above
# Add the TileService of the specified component, click on it, then
# remove it
# 'sleep' gives time for the tile to initialize and the click to
# register, 150 ms or shorter may be enough
cmd statusbar add-tile com.package.name/.service.QuickSettingsTileComponent
sleep 0.15
cmd statusbar click-tile com.package.name/.service.QuickSettingsTileComponent
sleep 0.25
cmd statusbar remove-tile com.package.name/.service.QuickSettingsTileComponent
#
# Tasker: Add Action -> Code -> Run Shell, copy above, check "Use Root"
# No need to wait for click to register, waiting was done above
# Optional: collapse status bar
# This won't work when on the lockscreen, but turning the screen off
# also collapses the status bar for you.
cmd statusbar collapse
#
# Tasker: Add Action -> Code -> Run Shell, copy above
# Optional: put device to sleep
# (Up to you: only turn off if the screen wasn't already on.)
input keyevent KEYCODE_POWER
#
# Tasker: Add Action -> Display -> Turn Off, enabling "Lock"
NOTA: ¡Se requiere root o ADB!
Si utiliza una aplicación de automatización en lugar de adb shell
, cmd statusbar add-tile/click-tile/remove-tile
debe ser ejecutado con Root o a través de, por ejemplo, acciones de ADB WiFi.
El otro cmd statusbar
Los comandos pueden ser ejecutados sin Root.
Tasker/etc. tienen opciones que no son de Root para despertar la pantalla y ponerla en reposo.
Otros datos
cmd statusbar click-tile
parece haber sido añadido con Android 7.0 Así que esto debería funcionar desde que los azulejos de ajustes rápidos personalizados se añadieron oficialmente a Android.
No he encontrado ninguna forma de leer el estado del mosaico de Ajustes Rápidos, por ejemplo, activo/encendido o inactivo/apagado. Para solucionar esto, he comprobado logcat
y notificaciones de aplicaciones a través de dumpsys notification
para ver lo que está en marcha o en pausa.
Tampoco he encontrado la forma de activar los azulejos de configuración rápida del sistema Android incorporados; afortunadamente, la mayoría de ellos parecen poder conseguirse por otros medios (ajustes seguros, llamadas de servicio, etc.).