2013-08-29 10 views
22

Quale parte del codice nei quattro progetti APK di esempio elencati here per Google Glass impedisce la riduzione dello schermo?GDK/APK per Google Glass - Non oscurare lo schermo

Quando scrivo il mio APK e lo sideload, dopo dieci secondi senza toccare, lo schermo si attenua ma non si spegne.

Quale modifica evidente o modifica del codice è possibile utilizzare per impedire la riduzione dello schermo.

Grazie! Dovrebbe esserci un tag Google-Glass-GDK? Se è così, aggiungilo per favore.

risposta

43

ci sono un paio di semplici modi si può fare questo senza chiedere un blocco scia:

  • Aggiungere l'attributo android:keepScreenOn="true" all'elemento radice del layout.

  • Oppure, effettuare le seguenti operazioni nel metodo onCreate:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
+0

Che w orchi, svalutato. Cosa nelle app di esempio provoca un comportamento simile? Il cronometro ha il primo trucco del layout, quindi è ovvio, ma Compass non ha nessuno dei trucchi, è il sensore che segnala di reimpostare continuamente il decimo secondo? Grazie per il chiarimento. –

+0

L'esempio Compass utilizza anche l'attributo di layout; consulta https://github.com/googleglass/apk-compass-sample/blob/master/res/layout/layout_compass.xml dove è impostato 'android: keepScreenOn'. –

+4

Non riesco a far funzionare nessuna di queste soluzioni, lo schermo continua a oscurarsi. Il collegamento al progetto di esempio fa riferimento a un file che non esiste più e non riesco a trovare l'impostazione menzionata in nessun punto del nuovo codice. C'è un modo per tenere lo schermo acceso o è stato abbandonato per qualche motivo? –

2

L'unico modo che ha funzionato per me era l'acquisizione di una Wakelock:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK , TAG); 
wakeLock.acquire(WAKE_LOCK_DURATION_IN_MILLIS); 

È inoltre necessario un permesso per quello:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
+0

questo funziona per me bene sui miei dispositivi di vetro –

+0

Questo funziona per me dal momento che la mia app Glass inizia con un servizio e utilizzare SurfaceHolder per contenere la TimeCard. Impossibile trovare Attività per chiamare getWindow() –