Перемещение устройства не регистрируется, когда устройство заблокировано. - PullRequest
0 голосов
/ 30 июня 2018

У меня есть следующий код, который издает звуковой сигнал, когда (мобильное) устройство слегка подталкивается:

let audio = new Audio('ack.mp3');

function handleMotionEvent(event) {
  let x = event.accelerationIncludingGravity.x;
  let y = event.accelerationIncludingGravity.y;    

  if (Math.abs(x) + Math.abs(y) > 2.2) {
    audio.play();
  }
}

window.addEventListener("devicemotion", handleMotionEvent, true);

Работает нормально, но не совсем, когда устройство заблокировано. Можно ли это как-то обнаружить, пока устройство заблокировано?

1 Ответ

0 голосов
/ 06 июля 2018

Похоже, вам нужно приобрести частичную блокировку после этой операции с. Класс PowerManager.

PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
PowerManager.WakeLock lock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,  "SensorRead");
lock.acquire();
window.addEventListener("devicemotion", handleMotionEvent, true);

Вам также необходимо это разрешение в AndroidManifest.xml:

 <uses-permission android:name="android.permission.WAKE_LOCK" />

Подробнее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...