【问题标题】:android accelerometer accuracy is extremely poorandroid加速度计精度极差
【发布时间】:2011-06-04 07:18:04
【问题描述】:

编写了一个打印加速度计输出的简单程序。

mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_FASTEST);     

事实证明:

  1. 加速度计输出始终设置为“最低”,具体取决于:

    public void onAccuracyChanged(Sensor sensor, int accuracy) {
      if (collectingData){  
         accelPrecision.setText("accelerometer accuracy: " + accuracy);
      }
    }
    
  2. 实际的加速度计读数非常不准确 - 即使放在桌子上也有大约 2%-5% 的波动

据我所知,在 Nexus S、Nexus One 和 G1 上存在同样的问题

知道如何使模式准确/设置什么

【问题讨论】:

  • 2%-5% 的加速度计准确度相当不错。
  • 加速度计精度取决于硬件。鉴于此,这不是 Android(软件)问题。

标签: android sensors


【解决方案1】:

使用过滤器。您正在查看原始数据,因此它当然会波动。像weighted averagemoving average 这样的东西就足够了。

【讨论】:

  • 谢谢。但是为什么我的空闲 Nexus S 总是将精度报告为“0”,即(根据开发文档)“SENSOR_STATUS_UNRELIABLE”——此传感器返回的值不可信,需要校准或环境不允许读数跨度>
猜你喜欢
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多