Schermata Dim mentre l'utente è inattivo

Ho un'applicazione che viene utilizzata per permettere di dire 4 ore, ma solo each 5 minuti che un utente ha bisogno di fare un input o leggere lo schermo. Mettere il telefono a dormire e bloccare lo schermo è un po 'fastidioso. Quindi ho due opzioni:

  1. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); che non blocca lo schermo, ma lo schermo è sempre luminoso, vorrei che lo sfogo mentre non c'è attività. Solo a causa della durata della batteria, o non import tanto per queste 4 ore?

  2. Imposta colore di background in modo programmato
  3. Come riprodurre audio continuamente mentre l'orientamento cambia in Android?
  4. L'elenco di liste di scorrimento senza fine funziona
  5. Installazione di ADT su Eclipse
  6. Android: Come modificare il formato della data di visualizzazione di DatePicker da MM / gg / aa a gg / mm / aaaa?
  7. C'è un modo per distriggersre / modificare la dissolvenza che una vista di elenco ha ai suoi bordi?
  8. un block di scia SCREEN_DIM_WAKE_LOCK che fa anche quello che voglio, ma mi è stato detto piuttosto di utilizzare l'opzione 1 sopra.

Posso raggiungere il voluto in qualche modo senza un block di scia?

  • Come avviare un'applicazione Android senza "android.intent.category.LAUNCHER"
  • Servizio, WakeLock
  • WebView saveState () conserva le variables Javascript / ambiente?
  • Come fare un peer di android a peer senza utilizzare il server intermedio?
  • Rimuovere il button "Fatto" di ActionMode
  • ViewPager all'interno della row di ListView impedisce l'triggerszione di onItemClick
  • 3 Solutions collect form web for “Schermata Dim mentre l'utente è inattivo”

    Puoi usare:

     WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.dimAmount=1.0f; getWindow().setAttributes(lp); 

    per distriggersre o spostare lo schermo quando si desidera.

    lp.dimAmount=1.0f completamente lo schermo, ma è ansible impostarlo a volontà con valori da 0 (nessuna dim dimpiata) a 1.0f.

    È ansible impostare un timer per call questo dopo 5 minuti di inattività e quindi triggersre nuovamente lo schermo su qualsiasi evento di touch o forse.

    Anche uno schermo sporco consuma una quantità significativa di batterie per un tempo come 4 ore. Davvero non vuoi mantenere lo schermo in quel modo. Penso che sarebbe meglio utilizzare FLAG_SHOW_WHEN_LOCKED, consentendo allo schermo di spegnere, ma per consentire all'utente di accedere immediatamente all'applicazione quando lo riaccenderà senza wherer prima attraversare la schermata di block.

    Se hai veramente bisogno di mantenere la dimensione dello schermo, puoi utilizzare uno SCREEN_DIM_WAKE_LOCK. Se si desidera un maggiore controllo, si può anche provare a impostare direttamente la luminosità dello schermo con WindowManager.LayoutParams.screenBrightness.

    Questo risponde all'ultimo Q dal 26 gennaio al 15:28

    PowerManager pm = (PowerManager) getSystemService (Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock (PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); wl.acquire (); ..screen rimarrà in questa sezione .. wl.release ();

    Vedere qui per ulteriori informazioni: http://developer.android.com/reference/android/os/PowerManager.html

    Quello che voglio dire è che dovresti acquisire i gestori di potenza prima di avviare la tua nuova attività per impedire la chiusura dello schermo. E rilasciate quando sei finito.


    Potresti anche usare lp.screenBrightness invece che lp.dimAmount

    E assicurati di inserire valore superiore a 0 per evitare block dello schermo:

    lp.screenBrightness = 0.01f + valore / 100.0f;

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.