Crea un avviso di tethering "nessuna rete" con Tasker. Ti avviserà quando la tua connessione si interrompe. Notifiche per dispositivi indossabili e connessi
Dall'ultimo articolo, sai che passo parecchio del mio tempo su un treno. È un ottimo momento per scrivere uno o due articoli, a patto di avere accesso a Internet per cercare fatti e idee. Il tethering può essere complicato sul treno, poiché lungo il mio percorso sono sparse aree prive di ricezione. Trovo abbastanza facile capire che sto per andare offline quando mi trovo in un tunnel, ma la situazione è meno evidente quando il treno attraversa i prati aperti del North Yorkshire. La soluzione di tethering integrata di Android non ha alcun modo per farti sapere che non sarai in grado di caricare quel sito web per i prossimi 5 minuti.
Ecco perché, da appassionato di Tasker, ho pensato a come risolvere il mio problema utilizzando la famosa app di automazione Android. Ho risolto il mio problema creando un avviso di tethering "nessuna rete" utilizzando Tasker. Lo scopo del progetto è farti sapere quando il tuo telefono non si trova più nel raggio d'azione della rete cellulare. Ciò avverrà in 3 modi:
- Utilizzo del LED di notifica (ideale per quando ti colleghi agli amici)
- Utilizzando l'icona di uno smartphone (è necessario uno smartwatch)
- Utilizzando un Join push (ideale per i dispositivi personali, può essere sostituito con AutoRemote)
Puoi diventare più creativo con le notifiche, tuttavia utilizzerò solo opzioni discrete poiché è più probabile che il tethering venga utilizzato in luoghi pubblici. A nessuno piacciono le notifiche odiose, giusto? Tieni presente che le notifiche utilizzeranno una connessione Internet per essere visualizzate sul dispositivo connesso. Potresti usare AutoRemote (via Bluetooth) per inviare avvisi quando la rete non è presente. Ciò richiederà che il dispositivo in questione sia accoppiato tramite Bluetooth.
Avrai bisogno:
Versione Android: 4.0+, Android 7.0 necessario per il riquadro delle notifiche
App: Giuntura
Plugin: Abbigliamento automatico (opzionale), AutoRemote (può sostituire Unisci), Notifica automatica (opzionale)
Abilita l'avviso di tethering "nessuna rete" con Tasker
Invece di verificare se il tethering è abilitato, è più semplice sostituire un riquadro nella barra di stato con Notifica automatica e impostare un comportamento di attivazione/disattivazione. Se non utilizzi Android 7.0 puoi invece utilizzare un collegamento o un widget.
Se non hai mai abilitato un riquadro con Notifica automatica - vedrai che è un po' imbarazzante. Dovrai creare un'attività di configurazione che convertirà un riquadro modello in un riquadro di nostra scelta. Posiziona una tessera vuota, ad es. Notifica automatica 02 nell'area dei riquadri (fare clic su Modifica per modificare i riquadri visibili).
Crea un riquadro Tethering
Piastrella di collegamento
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 ]
Per saperne di più
Dovrai eseguirlo solo una volta per impostare i riquadri e le variabili. Il riquadro utilizzerà un comando hotspot per modificare lo stato del tethering e lo imposterà come inattivo. Collasserà anche la barra di stato una volta premuta. Puoi decorare la tessera con un'etichetta a tua scelta e l'icona.
Verranno create altre due variabili e impostate su 0. %Variabile Hotspot visualizzerà lo stato del cavo (0 = no, 1 = sì) e % Finestra di dialogo Hotspot visualizzerà una finestra di dialogo che ci chiede quale dispositivo vogliamo notificare (0 = non mostrare, 1 = mostra finestra di dialogo).
Attiva/disattiva il collegamento
Attiva/disattiva il collegamento
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 ]
Per saperne di più
Desidero visualizzare una finestra di dialogo solo quando il tethering è abilitato. La finestra di dialogo mostrerà alcuni dispositivi che possiedo e mi permetterà di impostare il target per le notifiche. In ogni caso, imposterò il mio telefono tethering in modo che lampeggi rapidamente il LED di notifica ogni volta che la ricezione è scarsa.
Quando si preme il riquadro, lo stato diventa attivo. % Finestra di dialogo Hotspot cambia in 1 e attiva il HotspotDialog compito. Mentre selezioniamo il nostro dispositivo, i profili Hotspot vengono armati impostando la variabile %Variabile Hotspot a 1. Quando premo nuovamente su un riquadro per terminare il tethering, il file HotspotDialog ritorna a 0 e non richiede più la visualizzazione della finestra di dialogo, e il %Variabile Hotspot è impostato sul valore neutro 0.
A1,A6
L'azione Variabile Aggiungi +1 cambierà il valore delle nostre variabili iniziali da 0 a 1 e lo avvolgerà attorno a 2. Ciò significa che queste variabili assumeranno sempre valori pari a 1 o 0. Anche il posizionamento dell'azione è rilevante, così come il % Finestra di dialogo Hotspot controllerà quando verrà visualizzata la finestra di dialogo. Stiamo eseguendo la stessa attività per disabilitare e abilitare il tethering, ma non vogliamo che la finestra di dialogo appaia ogni volta che la attiviamo.
A7
Già che ci siamo, se viene eseguita l'attività per disabilitare il cavo (%Variabile Hotspot = 0), vogliamo cancellare la variabile che memorizza il nome del dispositivo che viene notificato dall'attività di dialogo Hotspot.
A5
IL Aspettare viene aggiunta un'azione per impedire che le informazioni sulla portata scarsa vengano visualizzate immediatamente, cosa che potrebbe accadere quando viene attivata l'impostazione dell'hotspot.
A3
Semplicemente attiva/disattiva il cavo WiFi azione. Niente di complicato in questo passaggio.
A4
Viene visualizzata un'attività separata per mostrare il file Finestra di dialogo Strumenti automatici e azione per la scelta che ho fatto. Questo verrà eseguito quando la nostra finestra di dialogo controlla la variabile % Finestra di dialogo Hotspot = 1.
A2
Quando viene premuto l'interruttore, vogliamo assicurarci che il riquadro cambi lo stato attivo/inattivo e mantenga lo stesso comando: hotspot. Infine, assicurati che comprimerà la barra di stato.
Finestra di dialogo dell'hotspot
Finestra di dialogo dell'hotspot
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 ]
Per saperne di più
IL Finestra di dialogo Strumenti automatici viene utilizzato per visualizzare i dispositivi disponibili. Quando il dispositivo è selezionato, la finestra di dialogo si chiuderà e imposterà il valore di %HotspotDevice al nome di quel dispositivo. Questa variabile viene cancellata ogni volta che il tethering viene interrotto.
Ricezione scarsa/Nessun dato
Ricezione scarsa/Nessun profilo dati
Per saperne di più
Ho creato 2 profili che controlleranno la potenza del segnale e la connessione Internet. Ognuno è controllato dalla variabile %Variabile Hotspot ed è attivo solo quando il tethering è abilitato. Entrambi i profili attiveranno la stessa attività quando attivati e disattivati. Uno contiene il contesto statale, ovvero la potenza del segnale, mentre l'altro la rete mobile. Idealmente, la connessione sarà ancora presente al momento dell'emissione della notifica. Questo è il motivo per cui includo la potenza del segnale impostata su 1 nella condizione del profilo.
Segnale scarso
Segnale scarso
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 ]
Per saperne di più
IL Notifica automatica viene creata una notifica sul telefono, ma solo per far lampeggiare il LED. Scegli gli altri valori della notifica secondo i tuoi gusti personali e imposta il lampeggio veloce del LED (il mio è acceso/spento per 300 ms) nel tuo colore preferito. L'idea è quella di visualizzare informazioni discrete piuttosto che un avviso completamente invasivo quando lo schermo si riattiva. La notifica viene salvata come notifica permanente con ID55.
Ciò che segue è a Partecipa alla spinta per ogni dispositivo che possiedi. Seleziona un Partecipa alla spinta per ciascun dispositivo e utilizzare la condizione IF per far corrispondere il valore di %HotspotDevice variabile.
Configura il Partecipa alla spinta azione per inviare una notifica di tua scelta. Poiché queste notifiche verranno ignorate sul dispositivo di destinazione, non sono necessarie altre azioni.
Orologio intelligente
Profilo dello 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 ]
Per saperne di più
Noterai che ho cambiato il modo in cui funziona la notifica per lo smartwatch. Nessuno di questi verrà visualizzato sul mio orologio. L'unica cosa che voglio mostrare sul mio orologio è una piccola icona che può essere eliminata su richiesta.
Crea un'icona utilizzando AutoWear gestisce le icone mobili *(devi andare sull'app AutoWear) e testare le dimensioni e il posizionamento sul tuo orologio. L'icona verrà disegnata su qualsiasi schermata, quindi assicurati che contenga un comando a portata di mano per chiuderla. ero solito closepoorrange e ha chiamato l'icona scarsa portata. La dimensione della mia icona è 30x30 pixel ed è posizionata al 65% a destra e al 20% dall'alto.
Una volta che sei soddisfatto delle dimensioni e della posizione, utilizza il file Applicazione AutoWear azione per mostrare l'icona e la condizione IF per collegarla al %HotspotDevice variabile.
Annulla
Annulla
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 ]
Per saperne di più
Per terminare il lampeggio del LED e rimuovere l'icona mobile dall'orologio, utilizzerò un semplice Annulla notifica automatica azione con l'ID della mia notifica (55) per eseguire il Applicazione AutoWear azione che nasconde l'icona mobile.
Lo smartwatch ha un profilo aggiuntivo che rimuoverà l'icona mobile se l'icona viene premuta. Per fare questo utilizzo il Comando AutoWear evento 'closepoorrange' quindi eseguo un'attività separata che contiene praticamente la stessa azione di Annulla compito.
Ci auguriamo che questa nostra piccola creazione ti piaccia e facci sapere se pensi che possiamo apportare qualche miglioramento! Come sempre potete scaricare il progetto cliccando sul link qui sotto.
Scarica qui il file di progetto di avviso di tethering "Nessuna rete"!
Per importare gli avvisi di tethering "nessuna rete" con il file di progetto Tasker, scarica il file sopra e salvalo ovunque nella tua memoria interna. Apri Tasker e controlla che la "modalità principiante" sia disabilitata nel menu delle preferenze. Quindi, premi a lungo sull'icona "home" nell'angolo in basso a sinistra e fai clic su "Importa". Trova il file prj.xml che hai salvato in precedenza e selezionalo per importarlo. Ora vedrai una nuova scheda nella riga inferiore contenente tutti i profili e le attività a cui abbiamo fatto riferimento in questo articolo.