【发布时间】:2020-01-05 13:35:48
【问题描述】:
我正在使用
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 的插件,但它们的行为相同。
我应该如何防止频率变慢? 有没有其他人遇到过这个问题?
【问题讨论】:
标签: android angular ionic-framework ionic4 devicemotion