我目前正在处理 Android 传感器 API 和加速计数据。
虽然内部组件应该支持高加速(甚至+-16g),但我尝试了一些最近的智能手机,发现暴露数据的最大范围通常是+-2g(例如Nexus 5),有时是+-4g(例如Nexus 4)。
有没有办法设置传感器的满量程? (我没能找到一个公共 API)
或者,有没有支持更高范围库存的旗舰智能手机? (例如+-8g、+-16g)。
我面临着和你一样的问题。
免责声明:我刚刚发现我正在写的内容,所以我根本没有测试过它......但我认为它的方向是正确的。
检查有效范围非常简单:Sensor.getMaximumRange()http://developer.android.com/reference/android/hardware/Sensor.html#getMaximumRange%28%29
现在,如您所知,设置适当的值是一件更加复杂的事情。我相信这与Android所谓的“硬件抽象层”有关https://source.android.com/devices/reference/files.html
我找到了 STMicroElectronics 的这份文档,该公司是三星 Galaxy SIII 和 S4 中嵌入的加速计的制造商http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/DM00063297.pdf
如果我没猜错的话,您需要在configuration.h(文档第5页)中#define ACCEL_MAX_RANGE为8或16*GRAVITY_EARTH。下面有很多说明,我仍在尝试理解,但我认为需要 root 智能手机并从其源代码编译 Android。
希望这可以帮助!如果您成功解决了,请告诉我,以便我们互相帮助。
Regards
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)