Как включить экран во время частичной блокировки пробуждения

Моя активность выполняется с частичной блокировкой пробуждения, поскольку она постоянно обрабатывает полученные данные Bluetooth. Блокировка пробуждения настроена следующим образом:

  powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
  wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
  wakeLock.acquire();

Когда происходят определенные события, я хочу отображать их на дисплее, чтобы пользователь мог просматривать их состояние. Я хочу, чтобы дисплей включался автоматически, а не нажатием клавиши пользователем. Однако все попытки сделать это провалились. Когда дисплей выключается во время работы с частичной блокировкой пробуждения, мои попытки вернуть дисплей обратно и позволить пользователю увидеть текущую активность не увенчались успехом. Я пытался имитировать активность пользователя:

PowerManager NewPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
   NewPowerManager.userActivity(1, false);

Установка флагов для окна:

 Window win = getWindow();
  win.setFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON, WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

И даже снятие блокировки пробуждения и запуск другой, которая должна включать экран:

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();

Есть ли что-то, чего я здесь не упускаю? Я не пытаюсь открыть новую активность, а просто показываю пользователю свою текущую. Кто-нибудь еще смог это сделать? Спасибо за любую помощь, которую вы можете мне дать.

7
задан apdevelop 5 May 2012 в 07:03
поделиться