Ho tre attività nella mia app. Voglio mantenere lo schermo sveglio quando è nella seconda attività. Lo schermo non dovrebbe spegnersi nella mia seconda attività a meno che il tasto "blocco" non venga premuto manualmente. Ho attraversato molti link ma a me non sembrano chiari.Mantieni lo schermo sveglio durante la mia attività
risposta
Come discusso nel tutorial Android Keep the Screen On, puoi farlo in pochi modi. È possibile impostare il FLAG_KEEP_SCREEN_ON sulla finestra della propria attività:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Un equivalente XML per questo è da aggiungere l'attributo android:keepScreenOn="true"
alla vista radice del layout del vostro attività. Il vantaggio di impostare il flag a livello di codice è che è possibile utilizzare
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
quando non c'è più bisogno di forzare la schermata di rimanere, mentre la vostra attività è in esecuzione.
Un altro modo per controllare lo schermo (e alcune altre risorse) è quello di utilizzare un blocco scia:
mWakeLock = ((PowerManager) getContext().getSystemService(Context.POWER_SERVICE))
.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName());
mWakeLock.acquire();
// screen stays on in this section
mWakeLock.release();
Il manifesto dovrà includere questa autorizzazione:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
Tuttavia, come discusso nel tutorial, un wake lock è più appropriato per altri casi d'uso (come un servizio o un'attività in background che richiede alla CPU di continuare a funzionare mentre lo schermo è spento).
funziona perfettamente! Grazie! – user838522
La prima scelta è ** molto ** migliore ... non usare una serratura sveglia !!Richiede un'ulteriore autorizzazione nel manifest! http://stackoverflow.com/a/2134602/844882 –
@AlexLockwood - Per l'applicazione dell'OP, il primo approccio è migliore. Tuttavia, è sbagliato adottare una politica di "non usare un wake lock!" Un wake lock fornisce un maggiore controllo sullo stato di attivazione dello schermo. Quando l'attività richiede solo lo schermo per essere tenuto acceso durante brevi periodi, è possibile rilasciare il blocco della sveglia, risparmiando la durata della batteria. Con il primo approccio, lo schermo rimane attivo per tutto il tempo in cui l'attività è in primo piano. Inoltre, il primo approccio non può essere utilizzato da un servizio che esegue lavori per conto di un'attività. –
Come ho capito la tua domanda, penso che devi usare WAKE_LOCK
nella tua applicazione.
Qualcosa di simile,
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"");
mWakeLock.acquire();
E nel file manifest.xml dell'applicazione aggiungere questo,
<uses-permission android:name="android.permission.WAKE_LOCK" />
questo funziona anche tu ... grazie! – user838522
tenta di utilizzare questo
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Puoi aggiungere un ulteriore chiarimento su come la tua soluzione risolve il problema? Aiuterà l'OP a capire meglio la tua soluzione. – KLee1
Trovo questa soluzione molto più semplice:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" // Whatever your layout is
...
android:keepScreenOn="true"> // Add this line
Basta aggiungere questo per il layout di attività XML.
È carino e pulito. – OneWorld
Questo codice è deprecato, utilizzare questo invece:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
Dopo aver finito con l'utilizzo, chiamata (migliore soluzione è quella di chiamare questo metodo in modo OnDestroy di alcune attività):
wl.release();
Ulteriori informazioni su questo link
[PowerManager.SCREEN_DIM_WAKE_LOCK] (http://developer.android.com/reference/android/os/PowerManager.html#SCREEN_DIM_WAKE_LOCK) è stato ritirato a favore di [WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON] (http://developer.android. it/reference/android/view/WindowManager.LayoutParams.html # FLAG_KEEP_SCREEN_ON) nel livello API 17. – anon
- 1. Mantieni sveglio Apple Watch
- 2. Gestione attività quando lo schermo è sbloccato
- 3. Mantieni l'oggetto Frammento durante la rotazione
- 4. Mantieni fissa l'immagine di sfondo durante lo scorrimento utilizzando css
- 5. onSuggestionClick ricrea la mia attività
- 6. Lo schermo di Xcode Instrument diventa nero durante la registrazione
- 7. Android: scorri lo schermo per aprire un'altra attività?
- 8. Come attivare lo schermo durante il risveglio parziale
- 9. Come impostare la mia attività come attività principale in Android?
- 10. Mantieni la posizione di scorrimento di GridView attraverso la rotazione dello schermo
- 11. Forzare la mia attività in primo piano?
- 12. Come gestire diverse dimensioni dello schermo/risoluzione dello schermo durante lo sviluppo di un sito?
- 13. Come verificare se la mia attività è l'attività corrente in esecuzione sullo schermo
- 14. La mia attività non viene visualizzata su Android Wear
- 15. Mantieni la api schermo intero a schermo intero dopo aver fatto clic su un collegamento
- 16. Mantieni sessione durante la chiamata a un servizio Web ASMX
- 17. Mantieni l'ordine degli attributi durante la modifica con minidom
- 18. Appare una nuova attività dietro la precedente durante la transizione
- 19. Android - la storia chiara durante la navigazione tra le Attività
- 20. Attività Android onDestroy() chiamata su blocco schermo
- 21. Cambia orientamento dello schermo durante la corsa della scimmia
- 22. Utilizzo dello schermo intero Attività
- 23. Android NFC Intents non sta iniziando la mia attività
- 24. Mantieni l'attività sempre in primo piano o messa a fuoco quando le app rogue lanciano attività?
- 25. Android: la barra di stato impedisce lo schermo intero
- 26. Come eseguire la mia app anche dopo aver bloccato lo schermo di iPhone?
- 27. Come rimuovere lo schermo bianco mentre viene caricata la mia app?
- 28. Come uccidere la mia attività - nel modo più duro
- 29. Come posso determinare la dimensione della mia app durante lo sviluppo?
- 30. La mia applicazione impiega così tanto tempo per avviare la schermata Prima attività
Vedere la risposta di dettaglio qui ... http://stackoverflow.com/questions/5712849/how-do-i-keep-the-screen-on-in-my-app/24261889# 24261889 – Nepster