ScreenOnAuto

Controllare il mirroring da altre app

Dalla v1.8.4 ScreenOnAuto accetta tre intent che avviano, fermano o commutano il mirroring. Tutto ciò che sa inviare un intent — un’app di automazione, una scorciatoia sulla schermata iniziale, uno script via ADB, un’app scritta da te — può pilotare il mirroring con questi, così da farlo partire insieme al resto della tua configurazione di guida invece che a mano.

Le tre azioni

Azione Cosa fa
idv.lzn.screenonauto.action.START_MIRROR Avvia il mirroring. Non fa nulla se è già in corso.
idv.lzn.screenonauto.action.STOP_MIRROR Ferma il mirroring. Non fa nulla se non è in corso.
idv.lzn.screenonauto.action.TOGGLE_MIRROR Lo ferma se è in corso, lo avvia se non lo è.

Ripetere un’azione è sempre sicuro. Un avvio inviato a un mirroring già attivo viene ignorato anziché smontare la sessione e ricostruirla, quindi qualcosa che scatta a ogni connessione Bluetooth non interromperà un mirroring già in piedi.

In un’app di automazione

La maggior parte delle app di automazione espone gli stessi elementi con nomi propri, di solito un’azione “invia intent” con campi più o meno così:

Campo Valore
Action una delle tre azioni qui sopra
Package idv.lzn.screenonauto
Class idv.lzn.screenonauto.MirrorControlActivity (oppure …MirrorControlReceiver per un broadcast)
Target Activity (oppure Broadcast)

Usa Activity, salvo motivi contrari: le due sezioni seguenti spiegano la differenza e perché non ci si può affidare a un broadcast per avviare il mirroring. In ogni caso il campo Class non è facoltativo: lasciandolo vuoto il broadcast non arriva affatto.

Se qualcosa non funziona, prova prima il comando ADB corrispondente qui sotto. Ti dice se il problema è nell’intent o nell’app che lo invia.

Avviare un’activity (consigliato)

Invia l’azione a idv.lzn.screenonauto/.MirrorControlActivity come activity:

adb shell am start -a idv.lzn.screenonauto.action.START_MIRROR \
  -n idv.lzn.screenonauto/.MirrorControlActivity

Di ScreenOnAuto non compare nulla sullo schermo e non resta nulla nelle app recenti. Puoi anche inviare l’avvio prima di arrivare all’auto: il mirroring aspetta e si aggancia da solo non appena lo schermo dell’auto è disponibile.

ℹ️ Nota Android continua a chiedere l’autorizzazione di cattura schermo quando il mirroring parte. Per renderlo davvero a mani libere, concedila una volta in anticipo via ADB — vedi Concedere il permesso di mirroring via ADB.

Inviare un broadcast

Le stesse tre azioni funzionano anche come broadcast, inviate a idv.lzn.screenonauto/.MirrorControlReceiver:

adb shell am broadcast -a idv.lzn.screenonauto.action.STOP_MIRROR \
  -n idv.lzn.screenonauto/.MirrorControlReceiver

Uno stop inviato così è completamente silenzioso: nessuna finestra, nessuno sfarfallio.

Nominare il componente non è facoltativo. Android oggi non consegna un broadcast a un’app se il mittente non dice a quale componente è destinato, perciò un broadcast che porta solo l’azione viene scartato e non succede assolutamente nulla, senza alcun errore da nessuna parte.

⚠️ Attenzione Un avvio inviato come broadcast non è affidabile e, quando fallisce, fallisce in silenzio. Due cose vanno consentite prima, ed entrambe su molti telefoni sono disattivate di serie:

Se ti serve solo l’avvio, usa l’activity qui sopra: non richiede nessuna delle due.

Risoluzione dei problemi

Ultimo aggiornamento: