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. Forza Gradle per utilizzare HTTP anziché HTTPS
  3. Android: Come posso aggiungere i collegamenti HTML all'interno di un ListView?
  4. Impostare più caricatori cursore con più adattatori - Android
  5. Miglior modo per valutare la velocità di connessione
  6. Come modificare il colore della bolla (sotto il cursore) su EditView (PROGRAMMATICAMENTE)?
  7. Come creare un menu delle opzioni dinamiche?
  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?

  • Polilinea Android - Aggiunta di punti a punto
  • Implementa l'interface DialogFragment in OnClickListener
  • Cassetto di navigazione Elementi che non registrano evento clic
  • Accedi a un carattere una volta dall'attivo e lo utilizzi come riferimento
  • Singolo accesso a Facebook di Android - è ansible avere più hash chiave?
  • Esiste un API per la navigazione di Google Maps in Android?
  • 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.