私は使っている
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)
}
}
Ionic と Angular を使用して Android デバイスの加速度計データにアクセスします。アプリ内ではイベントは 60 Hz の周波数で動作しますが、アプリがバックグラウンドに切り替わると、最初の 5 分間は周波数が 9 ~ 10 Hz 程度に低下し、バックグラウンドにあるある時点で 60 Hz に戻ります。そしていつまでもそのまま。
バックグラウンドプラグインも使用しています
this.backgroundMode.enable();
this.backgroundMode.on('activate').subscribe(() => {
this.backgroundMode.disableWebViewOptimizations();
});
config.xml の対応する条件を使用して、バックグラウンド プラグインに disableBatteryOptimizations() を追加しようとしましたが、まだ運がありません。
Device Motion と Gyroscope のプラグインも試しましたが、同じように動作します。
周波数が遅くなるのを防ぐにはどうすればよいですか? 他の誰かが以前にこの問題に遭遇したことがありますか?