我在用
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)
}
}
使用带有 Angular 的 Ionic 访问 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 的插件,但它们的行为相同。
我应该如何防止频率变慢?以前有没有其他人遇到过这个问题?