2013-08-29 13 views
22

Która część kodu w czterech przykładowych projektach APK wymienionych na here dla Google Glass zapobiega ściemnianiu ekranu?GDK/APK dla Google Glass - Zachowaj ekran przed ściemnianiem

Kiedy piszę własny plik APK i sideload, po dziesięciu sekundach bez stukania, ekran ściemnia się, ale nie wyłącza.

Którą oczywistą zmianę lub zmianę kodu można użyć, aby ekran nie ściemniał się.

Dzięki! Czy powinien istnieć tag Google-Glass-GDK? Jeśli tak, dodaj to.

Odpowiedz

43

Istnieje kilka prostych sposobów można to zrobić bez żądania blokady budzenia:

  • Dodaj atrybut android:keepScreenOn="true" do elementu głównego układu.

  • Albo, wykonaj następujące czynności w sposób onCreate:

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

W orki, przegłosowane. Co w przykładowych aplikacjach powoduje podobne zachowanie? Stoper ma pierwszą sztuczkę z układem, więc to oczywiste, ale Compass nie ma żadnych sztuczek, czy to czujnik raportujący nieustannie resetowanie dziesięciosekundowego zegara? Dzięki za wytłumaczenie. –

+0

Próbka kompasu używa również atrybutu układu; zobacz https://github.com/googleglass/apk-compass-sample/blob/master/res/layout/layout_compass.xml gdzie jest ustawione 'android: keepScreenOn'. –

+4

Nie mogę uzyskać żadnego z tych rozwiązań, ekran się ściemnia. Link do przykładowego projektu odwołuje się do pliku, który już nie istnieje i nie mogę znaleźć wspomnianego ustawienia w nowym kodzie. Czy istnieje sposób, aby utrzymać ekran na ekranie lub został on porzucony z jakiegoś powodu? –

2

Jedynym sposobem, który pracował dla mnie przez nabycie blokada wybudzenia:

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

potrzebujesz także pozwolenie w tym celu:

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

to działa dla mnie dobrze na moich szklanych urządzeniach. –

+0

To działa dla mnie, ponieważ moja aplikacja Glass zaczyna się od usługi i używa SurfaceHolder do przechowywania karty TimeCard. Nie można znaleźć czynności do wywołania getWindow() –

Powiązane problemy