Crie avisos de 'sem rede' de tethering com Tasker. Ele avisará quando sua conexão cair. Notificações para wearables e dispositivos conectados
Pelo último artigo, você sabe que passo boa parte do tempo no trem. É um excelente momento para escrever um ou dois artigos, desde que eu tenha acesso à Internet para pesquisar fatos e ideias. O tethering pode ser complicado no trem, pois áreas sem recepção estão espalhadas pela minha rota. Acho muito fácil perceber que estou prestes a ficar off-line quando estou em um túnel, mas a situação é menos aparente quando o trem atravessa os prados abertos de North Yorkshire. A solução de tethering integrada do Android não tem como avisar que você não conseguirá carregar aquele site nos próximos 5 minutos.
É por isso que, como aficionado por Tasker, pensei em como resolver meu problema usando o popular aplicativo de automação Android. Resolvi meu problema criando um aviso de 'sem rede' de tethering usando Tasker. O objetivo do projeto é avisar quando seu telefone não estiver mais no alcance da rede celular. Isso será feito de 3 maneiras:
- Usando LED de notificação (melhor para quando você conecta amigos)
- Usando um ícone de smartphone (precisa de um smartwatch)
- Usando um Join push (melhor para dispositivos pessoais - pode ser substituído por AutoRemote)
Você pode ser mais criativo com as notificações, no entanto, usarei apenas opções discretas, pois o tethering provavelmente será usado em locais públicos. Ninguém gosta de notificações desagradáveis, certo? Lembre-se de que as notificações usarão uma conexão com a Internet para aparecer no dispositivo conectado. Você poderia usar AutoRemoto (via Bluetooth) para enviar avisos quando a rede não estiver presente. Isso exigirá que o dispositivo em questão esteja emparelhado via Bluetooth.
Você precisará de:
Versão Android: 4.0+, Android 7.0 necessário para o bloco de notificação
Aplicativos: Juntar
Plug-ins: Desgaste automático (opcional), AutoRemoto (pode substituir Unir), Notificação automática (opcional)
Habilite um aviso de tethering 'sem rede' com Tasker
Em vez de verificar se o tethering está ativado, é mais fácil substituir um bloco na barra de status por Notificação automática e configure um comportamento de alternância. Se você não estiver no Android 7.0, poderá usar um atalho ou widget.
Se você nunca ativou um bloco com Notificação automática - você verá que isso é um pouco estranho. Você precisará criar uma tarefa de configuração que converterá um bloco de modelo em um bloco de nossa escolha. Coloque uma peça vazia, ou seja, Notificação Automática 02 na área de blocos (clique em editar para editar os blocos visíveis).
Crie um bloco de Tethering
Bloco de amarração
Tile SetupA1: AutoNotification Tiles [ Configuration: Tile: 2
Command: hotspottoggle
Label: Hotspot
Icon: android.resource://net.dinglisch.android.taskerm/hd_aaa_ext_signal
State: 1
Require Unlock: false
Hide Notifications: true Timeout (Seconds):60 ]
A2: Variable Set [ Name:%HotspotVariable To: 0 Recurse Variables: Off Do Maths: Off Append: Off ]
A3: Variable Set [ Name:%HotspotDialog To: 0 Recurse Variables: Off Do Maths: Off Append: Off ]
consulte Mais informação
Você só precisará executar isso uma vez para configurar os blocos e as variáveis. O bloco usará um comando alternância de ponto de acesso para alterar o estado do tethering e irá defini-lo como inativo. Ele também recolherá a barra de status uma vez pressionada. Você pode enfeitar o ladrilho com uma etiqueta de sua escolha e o ícone.
Mais duas variáveis serão criadas e definidas como 0. %HotspotVariável exibirá o status da corda (0 = não, 1 = sim) e %HotspotDialog exibirá uma caixa de diálogo perguntando qual dispositivo queremos notificar (0 = não mostrar, 1 = mostrar caixa de diálogo).
Alternar tethering
Alternar tethering
Hotspot ToggleA1: Variable Add [ Name:%HotspotDialog Value: 1 Wrap Around: 2 ]
A2: AutoNotification Tiles [ Configuration: Tile: 2
Command: hotspottoggle
Label: Hotspot
Icon: android.resource://net.dinglisch.android.taskerm/hd_aaa_ext_signal
State: 999
Require Unlock: false
Hide Notifications: true Timeout (Seconds):60 ]
A3: WiFi Tether [ Set: Toggle ]
A4: Perform Task [ Name: Hotspot Dialog Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop: Off ] If [ %HotspotDialog ~ 1 ]
A5: Wait [ MS: 0 Seconds: 5 Minutes: 0 Hours: 0 Days: 0 ]
A6: Variable Add [ Name:%HotspotVariable Value: 1 Wrap Around: 2 ]
A7: Variable Clear [ Name:%HotspotDevice Pattern Matching: Off ] If [ %HotspotVariable ~ 0 ]
consulte Mais informação
Quero exibir uma caixa de diálogo somente quando o tethering estiver ativado. A caixa de diálogo mostrará alguns dispositivos que possuo e me permitirá definir o alvo das notificações. Em cada caso, configurarei meu telefone conectado para piscar o LED de notificação rapidamente sempre que a recepção for ruim.
Quando o bloco é pressionado, ele muda o status para ativo. %HotspotDialog muda para 1 e aciona o Diálogo de ponto de acesso tarefa. Enquanto selecionamos nosso dispositivo, os perfis Hotspot são armados definindo a variável %HotspotVariável para 1. Quando pressiono um ladrilho novamente para encerrar o tethering, o Diálogo de ponto de acesso retorna para 0 e não solicita mais a exibição da caixa de diálogo, e o %HotspotVariável está definido para o valor neutro 0.
A1, A6
A acção Variável Adicionar +1 mudará o valor de nossas variáveis iniciais de 0 para 1 e envolverá 2. Isso significa que essas variáveis sempre assumirão valores de 1 ou 0. O posicionamento da ação também é relevante, pois o %HotspotDialog controlará quando a caixa de diálogo será exibida. Estamos executando a mesma tarefa para desabilitar e habilitar o tethering, mas não queremos que a caixa de diálogo apareça cada vez que a alternamos.
A7
Enquanto estamos nisso, se a tarefa for executada para desativar a corda (%HotspotVariável = 0), queremos limpar a variável que armazena o nome do dispositivo que é notificado pela tarefa Hotspot Dialog.
A5
O Espere uma ação é adicionada para evitar que as informações sobre o alcance ruim sejam exibidas imediatamente, o que pode acontecer quando a configuração do ponto de acesso é alternada.
A3
Simplesmente alternar o cabo WiFi Ação. Nada complicado nesta etapa.
A4
Uma tarefa separada é exibida para mostrar o Caixa de diálogo AutoTools e ação pela escolha que fiz. Isso será executado quando nossa variável de controle de diálogo %HotspotDialog = 1.
A2
Quando a alternância é pressionada, queremos ter certeza de que o bloco alterna o estado ativo/inativo e mantém o mesmo comando: alternância de ponto de acesso. Por último, certifique-se de que a barra de status irá recolher.
Caixa de diálogo Ponto de acesso
Diálogo de ponto de acesso
Hotspot DialogA1: AutoTools Dialog [ Configuration: Dialog Type: List
Title: Enable poor network notification?
Icon: /storage/emulated/0/Tasker/Material Icons/ic_wifi.png
List Type: 1
Texts: Tablet, Mobile, Computer, Watch, Laptop
Text Size: 20
Images: /storage/emulated/0/Tasker/Material Icons/ic_tablet-1.png,/storage/emulated/0/Tasker/Material Icons/ic_cellphone_android-1.png,/storage/emulated/0/Tasker/Material Icons/ic_desktop_mac-1.png,/storage/emulated/0/Tasker/Material Icons/ic_watch-1.png,/storage/emulated/0/Tasker/Material Icons/ic_laptop-1.png
Image Width: 50
Dim Background: true
Number Of Columns: 3
Top Margin: 16
Bottom Margin: 16
Bottom Buttons Top Margin: 16
Bottom Buttons Bottom Margin: 16
Close On Select: true
Separator: ,
Command Variable: atcommand
Cancelable: true
Turn Screen On: true Timeout (Seconds):60 ]
A2: Variable Set [ Name:%HotspotDevice To:%attext Recurse Variables: Off Do Maths: Off Append: Off ]
consulte Mais informação
O Caixa de diálogo AutoTools é usado para exibir os dispositivos disponíveis. Quando o dispositivo for selecionado, a caixa de diálogo será fechada e definirá o valor do %Dispositivo de ponto de acesso ao nome desse dispositivo. Esta variável é limpa sempre que o tethering é interrompido.
Má recepção/Sem dados
Má recepção/Sem perfis de dados
consulte Mais informação
Criei 2 perfis que irão verificar a intensidade do sinal e a conexão com a Internet. Cada um é controlado pela variável %HotspotVariável e só está ativo quando o tethering está ativado. Ambos os perfis acionarão a mesma tarefa quando ativados e desativados. Um contém o contexto do estado – intensidade do sinal – e o outro a rede móvel. Idealmente, a conexão ainda estará presente quando a notificação for emitida. É por isso que estou incluindo a intensidade do sinal definida como 1 na condição do perfil.
Sinal fraco
Sinal fraco
Profile: Poor Reception (91)State: Variable Value [ %HotspotVariable ~ 1 ]
State: Signal Strength [ From: 0 To: 1 ]
Enter: PoorSignal (89)
A1: AutoNotification [ Configuration: Use HTML: false
Title: Poor reception
Icon: android.resource://net.dinglisch.android.taskerm/hl_device_access_network_cell
Status Bar Icon: device_access_network_cell
Status Bar Text Size: 16
Id: 55
Priority: -1
Persistent: true
Is Group Summary: false
LED Color: red
LED On: 300
LED Off: 30p
Skip Picture Cache: false
Update Notification: false
Only on Phone: true Timeout (Seconds):20 ]
A2: Join Send Push [ Configuration: Device: Chrome@Laptop
Text: Poor range
Title: Poor reception
Icon: /storage/emulated/0/Tasker/Material Icons/ic_wifi.png Timeout (Seconds):60 ] If [ %HotspotDevice ~ Laptop ]
A3: Join Send Push [ Configuration: Device: Chrome@Home
Text: Poor range
Title: warning
Icon: /storage/emulated/0/Tasker/Material Icons/ic_wifi.png Timeout (Seconds):60 ]
A4: Join Send Push [ Configuration: Device: Tablet
Text: Poor range
Icon: /storage/emulated/0/Tasker/Material Icons/ic_wifi.png Timeout (Seconds):60 ] If [ %HotspotDevice ~ Tablet ]
A5: AutoWear App [ Configuration: Execute Now: true
Trigger Event: true
Haptic Feedback: true
Name: App
AutoWear Elements: Show
AutoWear Element Id: poorrange
Turn Screen On: true Timeout (Seconds):60 ] If [ %HotspotDevice ~ Watch ]
Exit: Cancel (90)
A1: AutoNotification Cancel [ Configuration: Id: 55
Cancel All: false Timeout (Seconds):0 ]
A2: AutoWear App [ Configuration: Execute Now: true
Trigger Event: true
Haptic Feedback: true
Name: App
AutoWear Elements: Hide
AutoWear Element Id: poorrange
Turn Screen On: true Timeout (Seconds):60 ] If [ %HotspotDevice ~ Watch ]
Profile: No Data (92)
State: Variable Value [ %HotspotVariable ~ 1 ]
State: Mobile Network [ 2G: On 3G: Off 3G - HSPA: Off 4G: Off ]
Enter: PoorSignal (89)
A1: AutoNotification [ Configuration: Use HTML: false
Title: Poor reception
Icon: android.resource://net.dinglisch.android.taskerm/hl_device_access_network_cell
Status Bar Icon: device_access_network_cell
Status Bar Text Size: 16
Id: 55
Priority: -1
Persistent: true
Is Group Summary: false
LED Color: red
LED On: 300
LED Off: 30p
Skip Picture Cache: false
Update Notification: false
Only on Phone: true Timeout (Seconds):20 ]
A2: Join Send Push [ Configuration: Device: Chrome@Laptop
Text: Poor range
Title: Poor reception
Icon: /storage/emulated/0/Tasker/Material Icons/ic_wifi.png Timeout (Seconds):60 ] If [ %HotspotDevice ~ Laptop ]
A3: Join Send Push [ Configuration: Device: Chrome@Home
Text: Poor range
Title: warning
Icon: /storage/emulated/0/Tasker/Material Icons/ic_wifi.png Timeout (Seconds):60 ]
A4: Join Send Push [ Configuration: Device: Tablet
Text: Poor range
Icon: /storage/emulated/0/Tasker/Material Icons/ic_wifi.png Timeout (Seconds):60 ] If [ %HotspotDevice ~ Tablet ]
A5: AutoWear App [ Configuration: Execute Now: true
Trigger Event: true
Haptic Feedback: true
Name: App
AutoWear Elements: Show
AutoWear Element Id: poorrange
Turn Screen On: true Timeout (Seconds):60 ] If [ %HotspotDevice ~ Watch ]
Exit: Cancel
A1: AutoNotification Cancel [ Configuration: Id: 55
Cancel All: false Timeout (Seconds):0 ]
A2: AutoWear App [ Configuration: Execute Now: true
Trigger Event: true
Haptic Feedback: true
Name: App
AutoWear Elements: Hide
AutoWear Element Id: poorrange
Turn Screen On: true Timeout (Seconds):60 ] If [ %HotspotDevice ~ Watch ]
consulte Mais informação
O Notificação automática uma notificação é criada no telefone, mas apenas para fazer o LED piscar. Escolha os outros valores da notificação de acordo com sua preferência e defina o piscar rápido do LED (o meu liga/desliga 300ms) na sua cor preferida. A ideia é exibir informações discretas em vez de um alerta totalmente invasivo quando a tela é ativada. A notificação é salva como uma notificação permanente com ID 55.
O que se segue é um Junte-se ao push para cada dispositivo que você possui. Selecione uma Junte-se ao push para cada dispositivo e use a condição IF para corresponder ao valor de %Dispositivo de ponto de acesso variável.
Configurar o Junte-se ao push ação para enviar uma notificação de sua escolha. Como essas notificações serão ignoradas no dispositivo de destino, nenhuma outra ação será necessária.
Relógio inteligente
Perfil do smartwatch
Profile: Remove Watch IconEvent: AutoWear Command [ Configuration: Command Filter: closepoorrange
Case Insensitive: false
Exact: true
Regex: false
Variable Array: false ]
Enter: Close WearIcon (55)
A1: AutoWear App [ Configuration: Execute Now: true
Trigger Event: true
Haptic Feedback: true
Name: App
AutoWear Elements: Hide
AutoWear Element Id: poorrange
Turn Screen On: true Timeout (Seconds):60 ]
consulte Mais informação
Você notará que mudei a forma como a notificação funciona para o smartwatch. Nenhuma das opções acima aparecerá no meu relógio. A única coisa que quero mostrar no meu relógio é um pequeno ícone que pode ser dispensado mediante solicitação.
Crie um ícone usando AutoWear Gerenciar ícones flutuantes *(você precisa acessar o aplicativo AutoWear) e testar o tamanho e o posicionamento no seu relógio. O ícone será desenhado sobre qualquer tela, portanto, certifique-se de conter um comando ao toque para fechá-lo. eu usei closepoorrange e nomeou o ícone faixa pobre. O tamanho do meu ícone é 30x30 pixels e ele está colocado 65% à direita e 20% do topo.
Quando estiver satisfeito com o tamanho e a localização - use o Aplicativo AutoWear ação para mostrar o ícone e a condição IF para vinculá-lo ao %Dispositivo de ponto de acesso variável.
Cancelar
Cancelar
Cancel (90)A1: AutoNotification Cancel [ Configuration: Id: 55
Cancel All: false Timeout (Seconds):0 ]
A2: AutoWear App [ Configuration: Execute Now: true
Trigger Event: true
Haptic Feedback: true
Name: App
AutoWear Elements: Hide
AutoWear Element Id: poorrange
Turn Screen On: true Timeout (Seconds):60 ] If [ %HotspotDevice ~ Watch ]
consulte Mais informação
Para acabar com o piscar do LED e remover o ícone flutuante do relógio, vou usar um simples Cancelamento de notificação automática ação com o ID da minha notificação (55) para realizar o Aplicativo AutoWear ação que oculta o ícone flutuante.
O smartwatch possui um perfil adicional que removerá o ícone flutuante se o ícone for pressionado. Para fazer isso eu uso o Comando AutoWear evento ‘closepoorrange’ então executo uma tarefa separada que contém praticamente a mesma ação que o Cancelar tarefa.
Esperamos que você goste desta nossa pequena criação e deixe-nos saber se você acha que podemos fazer alguma melhoria! Como sempre, você pode baixar o projeto clicando no link abaixo.
Baixe o arquivo do projeto de aviso de tethering 'No Network' aqui!
Para importar os avisos de tethering 'sem rede' com o arquivo de projeto Tasker, baixe o arquivo acima e salve-o em qualquer lugar do seu armazenamento interno. Abra o Tasker e verifique se o "modo iniciante" está desativado no menu de preferências. Em seguida, mantenha pressionado o ícone “home” no canto inferior esquerdo e clique em “importar”. Encontre o arquivo prj.xml que você salvou anteriormente e selecione-o para importá-lo. Agora você verá uma nova guia na linha inferior contendo todos os perfis e tarefas mencionados neste artigo.