Como estou usando o CyanogenOS 12 (derivado do CM12), a solução a seguir pode não funcionar em um pirulito padrão, mas, independentemente disso, é uma solução muito útil.
Os azulejos que você pode alternar nas configurações rápidas são atribuídos nomes específicos como Bluetooth → bt
, Wi-Fi -> wifi
, Paisagem / Retrato → rotation
, e muitos outros, e estes nomes são armazenados como um valor para a chave sysui_qs_tiles
debaixo da mesa secure
de settings.db
(Definições Armazenamento).
Embora esses blocos possam ser removidos / reorganizados na interface do usuário de Configurações, a linha de comando também pode ser considerada para realizar a tarefa.
O comando relevante é settings
e seu uso é mencionado como:
usage: settings [--user NUM] get namespace key
settings [--user NUM] put namespace key value
settings [--user NUM] delete namespace key
'namespace' is one of {system, secure, global}, case-insensitive
If '--user NUM' is not given, the operations are performed on the owner user.
Você precisaria da configuração do ADB em sua máquina antes de prosseguir. Como alternativa, se o dispositivo estiver enraizado, você poderá usar um aplicativo de terminal como o Emulador de Terminal para Android .
Nota: O ADB no modo sem fio pode ser perigoso se o dispositivo não suportar a autenticação de um cliente antes de dar acesso. Prossiga por sua conta e risco!
Primeiro precisamos descobrir o valor armazenado na chave sysui_qs_tiles
e, para isso, inserir em um terminal o comando:
adb shell settings get secure sysui_qs_tiles
Para dispositivos raiz usando o aplicativo de terminal:
su
settings get secure sysui_qs_tiles
A saída seria como:
wifi,bt,cell,rotation,flashlight,hotspot,location,airplane
Agora, se eu desejar remover o Modo Avião das Configurações rápidas ou desejar que o bloco Wi-Fi seja mostrado após o Hotspot , os comandos na ordem correspondente serão:
adb shell settings put secure sysui_qs_tiles wifi,bt,cell,rotation,flashlight,hotspot,location
adb shell settings put secure sysui_qs_tiles bt,cell,rotation,flashlight,hotspot,wifi,location
Para dispositivos raiz usando o aplicativo de terminal:
su
settings put secure sysui_qs_tiles wifi,bt,cell,rotation,flashlight,hotspot,location
settings put secure sysui_qs_tiles bt,cell,rotation,flashlight,hotspot,wifi,location
Agora, voltando ao requisito, ou seja, " oculte as configurações rápidas na tela de bloqueio ". Você pode usar uma ferramenta de automação como o Tasker para remover os blocos das Configurações rápidas quando a tela estiver bloqueada e adicioná-los novamente quando a tela estiver desbloqueada.
Antes de prosseguirmos com o uso do Tasker , devo mencionar que o settings
comando só pode ser usado com o ADB em dispositivos não-raiz por causa de privilégios mais altos exigidos do que o que é concedido a um usuário comum e, portanto, para a automação no Tasker, o dispositivo precisaria ter ADB em execução no modo sem fio. Para fazer isso, consulte:
Instruções para Tasker
- Crie uma tarefa chamada "Tiles s-unlocked".
Adicione uma ação como Código → Executar Shell e adicione estes detalhes:
Comando :adb connect localhost:<PORT>; adb shell settings put secure sysui_qs_tiles wifi,bt,cell,rotation,flashlight,hotspot,location
Para dispositivos com raiz, os detalhes seriam:
- Comando :
settings put secure sysui_qs_tiles wifi,bt,cell,rotation,flashlight,hotspot,location
- Marque Usar raiz
Para casos em que isso importa:
- Use
<PORT>
como o número da porta na qual o ADB sem fio está funcionando como5555
- No lugar de
wifi,bt,cell,rotation,flashlight,hotspot,location
uso, os nomes dos blocos que você deseja ou possui nas Configurações rápidas
Crie uma outra tarefa chamada "Ladrilhos bloqueados".
Nota : Se você definiu configurações para que a tela não trave logo após o dispositivo dormir, mas após XY segundos (como 30
segundos), crie uma ação como Tarefa → Aguarde e defina esses segundos XY . Como alternativa, sleep XY
pode ser usado na próxima etapa, sob o comando . Arielle sugeriu a ideia .
Adicione outra ação como Código → Executar Shell e adicione estes detalhes:
Comando :adb connect localhost:<PORT>; adb shell settings put secure sysui_qs_tiles ' '
Para dispositivos com raiz, os detalhes seriam:
- Comando :
settings put secure sysui_qs_tiles ' '
- Marque Usar raiz
- Crie um perfil denominado "S-unlocked" em Event → Display → Display Unlocked , escolha
Highest
Priority e vincule a tarefa "Tiles s-unlocked".
- Crie um outro perfil chamado "S-locked" em Evento → Display → Display Off , escolha
Highest
Priority e vincule a tarefa "Tiles s-locked".
Ative o Tasker e veja a ação desejada bloqueando / desbloqueando a tela.
(Clique na imagem para ampliar)
Ordem das imagens como "Nenhum bloco quando a tela está bloqueada" → "Bloco quando a tela está desbloqueada"
(Clique na imagem para ampliar)
Deixe-me saber se minha solução funciona em um dispositivo executando o Stock Lollipop.