在 Android 上检测显着的设备运动

2024-01-12

我一直在试图弄清楚如何制作一个应用程序来检测设备是否已被大量移动,而不仅仅是晃动。我试图检测至少一英尺的距离。阅读官方 Android 开发网站上的培训部分,我最好的猜测是我应该使用重大运动传感器 http://developer.android.com/guide/topics/sensors/sensors_motion.html#sensors-motion-significant,但我找不到如何使用它的示例。我是否只是将“当前”位置存储在数组中,然后将其与Event的值数组,只要有onTrigger()叫做?

或者我应该使用加速度计?还有其他传感器吗?这LocationManager(这个够准确吗?)?


基于显着运动传感器ApiDemos 中的演示活动 https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/os/TriggerSensors.java,没什么可做的。触发传感器触发,其中不包含任何有意义的数据values http://developer.android.com/reference/android/hardware/SensorEvent.html#values字段(它是一个只有一个元素的数组,根据我的测试,始终为 1.0)并禁用自身。

所以,实际上没有什么可以比较的。事件已触发,仅此而已。您只需相信它符合您对“移动大量”的定义:/

如果你想测量一英尺的距离,我很确定Location不够精确(因为它最多是基于 GPS 的)。

As for 加速度计数据,理论上你可以计算距离(加速度 -> 速度 -> 距离),但它非常不准确。看这个答案 https://stackoverflow.com/a/6356253/82788,这基本上声称它不实用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 上检测显着的设备运动 的相关文章

随机推荐