sabato 1 aprile 2017

Non far spegnere display (Mit App Inventor 2)

Parlando sempre dei limiti di Mit App Inventor 2, c'è il discorso del dislay del cellulare che non rimane acceso.
Se stai quindi giocando ad un applicazione sviluppata in app inventor, lo schermo del tuo telefonino dopo un po' si spegnerà.

Se ad esempio hai sviluppato un puzzle game, un rompicapo dove la gente deve guardare lo schermo del telefono per diversi minuti senza mai distrarsi, sapere come non far spegnere il display è una cosa fondamentale per il tuo gioco per android.
Vediamo dunque un accrocchio fatto apposta per poter superare questo limite di app inventor 2.


Non far spegnere il display in Mit App Inventor 2


Per poter mantenere acceso lo schermo del cellulare in un'applicazione sviluppata con app inventor, occorre aggiare il problema tramite un particolare barbatrucco.

Normalmente bisognerebbe agire, tra le altre cose, nel manifesto dell'app (androidmanifest.xml), aggiungendo questa riga:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Cosa però non possibile in app inventor2.

Quindi, la soluzione è la seguente:
  1. Aggiungere alla tua app una notifica (notifier), dal pannello Interfaccia utente (user interface)
  2. Impostare la notifica con colore di sfondo e colore testo trasparente, e settare la lunghezza della notifica come corta (short)

    Non far spegnere display (Mit App Inventor 2)
  3. Aggiungere un componente di tipo orologio (clock) dal pannello sensori, lasciando come intervallo 1000
  4. Andare in Blocchi (blocks)
  5. Aggiungere il blocco Per sempre quando orologio timerconcluso esegui (when clock timer do) ed inserire l'azione Esegui notifica mostra avviso (call notifier show alert notice) impostando un'etichetta di testo vuota (label).

imposta notifica nel clock

Così facendo, ogni secondo apparirà una notifica invisibile sul display del cellulare, impedendo allo standby di partire.
L'aver impostato la notifica in modo che sia invisibile inoltre, non influirà in alcun modo sull'aspetto grafico del gioco.

L'unico limite di questo metodo è che la notifica, anche se non visibile, ha comunque un piccolo ingombro, e che si posizionerà al centro dello schermo.
Questo vuol dire che se avrai qualche tasto proprio in quel punto, se uno ci clicca sopra, potrebbe avere un minimo di intoppo durante la pressione.

Ho fatto diverse prove con questo metodo, e considerando che in teoria il tempo minimo in cui una persona può impostare lo standby dello schermo del cellulare, è di 15 secondi, in teoria si poteva settare la notifica ogni 10 secondi. Tuttavia ho comunque notato che lo schermo inizia a spegnersi prima, e che quindi se la notifica deve ripassare dopo tot secondi, allora per un po' di tempo si potrebbe avere lo schermo in penombra. Quindi l'unica soluzione per non far spegnere mai il display del cellulare in app inventor, è quella di settare la notifica proprio con un intervallo di un secondo.

Ci sarebbe poi un'altra soluzione, che vi linko qui.
Tramite l'installazione di un componente aggiuntivo /estensione (extension).
L'ho provata e funziona, c'è il keep monitor on (KeepScreenOn) ed keep display off.
Quindi se non è un problema per te installare estensioni su appinventor (se non sai come fare leggi qui), questo secondo metodo è sicuramente più rapido di quello che ti ho appena illustrato.

Torna all'elenco delle lezioni

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon