У меня есть функция переднего плана, которая ждет дрожания. Когда он получает это движение, он посылает широковещательный с:Экран не включается с блокировкой бодрствования в Android
Intent i = new Intent("com.company.app.shakeDetectedMessage");
sendBroadcast(i);
Моя основная деятельность получает это с радиовещательного приемника, который реализует метод:
@Override
public void onReceive(Context context, Intent intent)
{
MainActivity.this.turnOnScreen();
Toast.makeText(getApplicationContext(), "Screen ON", Toast.LENGTH_SHORT).show();
}
И моя очередь на методе экрана:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
у меня есть частичный замок бодрствование с
PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SensorRead");
mWakeLock.acquire();
заявлено на обслуживание
Однако, когда я выключаю экран и трясусь, экран не включается! Я проверил, что каждый метод работает с журналами. OnReceive работает, даже когда экран выключен. Трансляция работает. Просто экран не включается!