Я использую
window.addEventListener('devicemotion', event => this.watchDeviceMotion(event))
watchDeviceMotion(event: any) {
let motionData = {
x: event.acceleration.x,
y: event.acceleration.y,
z: event.acceleration.z,
}
let rotationData = {
alpha: event.rotationRate.alpha,
beta: event.rotationRate.beta,
gamma: event.rotationRate.gamma
}
if (this.getSensorData) {
// console.log(JSON.stringify(motionData))
// console.log(JSON.stringify(rotationData))
this.userData.motionData.push(motionData)
this.userData.rotationData.push(rotationData)
}
}
для доступа к данным акселерометра на устройстве Android с использованием Ioni c с Angular. Внутри приложения событие работает с частотой 60 Гц, но когда приложение переключается в фоновый режим, частота падает около 9-10 Гц в течение первых 5 минут, а в какой-то момент, пока он еще в фоновом режиме, оно возвращается к частоте 60 Гц и остается таким до бесконечности.
Я также использую фоновый плагин с
this.backgroundMode.enable();
this.backgroundMode.on('activate').subscribe(() => {
this.backgroundMode.disableWebViewOptimizations();
});
Я попытался добавить disableBatteryOptimizations () к фоновому плагину с соответствующим условием в конфигурации. xml, но все равно не повезло.
Я также попробовал плагины для Device Motion и Gyroscope, но они ведут себя одинаково.
Как предотвратить частоту замедления? Кто-нибудь еще сталкивался с этой проблемой раньше?