L'attività viene eseguita con un wake wake parziale poiché gestisce continuamente i dati Bluetooth ricevuti. Il blocco scia è impostato in questo modo:Come attivare lo schermo durante il risveglio parziale
powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wakeLock.acquire();
Quando si verificano determinati eventi che voglio sul display in modo che l'utente può visualizzare lo stato. Voglio che il display si accenda automaticamente, non da una pressione di un tasto utente. Tuttavia tutti i tentativi di fare ciò sono falliti. Quando il display si spegne durante l'esecuzione con un parziale wake lock, i miei tentativi di riaccendere il display e lasciare che l'utente veda l'attività corrente hanno fallito. Ho provato fingendo l'attività degli utenti:
PowerManager NewPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
NewPowerManager.userActivity(1, false);
bandiere Impostazione per la finestra:
Window win = getWindow();
win.setFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON, WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
E anche rilasciando il blocco della veglia e di iniziare un altro che dovrebbe accendere lo schermo:
if (wakeLock != null)
{
wakeLock.release(); // release the wakelock
}
PowerManager.WakeLock TempWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP, "TempWakeLock");
// tried | PowerManager.ON_AFTER_RELEASE to no avail
TempWakeLock.acquire();
C'è qualcosa che mi manca qui? Non sto cercando di aprire una nuova attività, ma semplicemente di visualizzare la mia attuale per l'utente. Qualcun altro è stato in grado di farlo? Grazie per l'aiuto che mi puoi dare.