java - 传感器采样率总是太高

标签 java android android-sensors

我正在编写一个 Android 日志记录应用程序,该应用程序作为后台服务运行并记录传感器数据。 这是我开始记录重力传感器的代码示例:

public void StartLogging(int intervalInMilliseconds) {
    mySensorManager.registerListener(this, myGravitySensor, intervalInMilliseconds * 1000); //millisec * 1000 = microsec
}

但是,我有一个问题:我设置的采样率完全被忽略,而实际的采样率要快得多。 例如:即使我设置了 10000000 微秒(又名:10000 毫秒,或 10 秒)的非常慢的采样率,我实际上每秒收到大约十几次更新,这比我请求的速度快了一百倍以上! p>

我在文档中读到,该间隔并不意味着严格精确,但这里我们谈论的是至少两个数量级的差异,这是荒谬的!

我知道我可以只比较时间戳,并且只记录每 100 个事件,但问题是我正在尝试最大限度地减少功耗,并且我想每 10 秒唤醒一次 CPU 会花费相当多的时间。对电池的影响与每秒唤醒电池十次不同。

我还知道我可以传递第四个参数,该参数设置传感器事件在传递之前可以在队列中停留的时间,但这似乎也没有任何明显的效果。

我哪里出错了?

最佳答案

它适用于某些手机,但可能不适用于其他手机,实际上这取决于手机使用的传感器和其他因素。

您不应依赖该值,而应根据您所需的费率过滤不需要的值。

干杯!!!

关于java - 传感器采样率总是太高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30169759/

相关文章:

java - 在 tomcat 中部署具有某些上下文的多个应用程序,但让它们认为它们是根应用程序

android - 预取图像是否仍应延迟加载到 ListView 中?

android - 'NoSuchMethodError:当我尝试执行SQFLITE类时,对空调用了 'insert'方法,为什么会这样呢?

安卓级别(传感器加速度计)

Java Robot类按特殊字母?

java - 在新线程中启动后台服务会卡住主应用程序

Java 与 Android SDK

android - 在 Android 中开发计步器

android - Android NDK 中的陀螺仪和磁场传感器事件

java - 从具有对象 "Field"的私有(private)字段获取值。 java