Android 使用设备传感器判断手机是否在车内移动?

Android 使用设备传感器判断手机是否在车内移动?,android,accelerometer,sensors,android-sensors,Android,Accelerometer,Sensors,Android Sensors,我现在面临着一个非常有趣的两难境地,在环顾四周并在谷歌上搜索之后,找到一个解决方案似乎不像我想象的那么容易 我希望使用Android的内置传感器(加速计),来收集移动车辆内的设备是否在持续运动。明显的替代方法是只使用GPS,然后使用Location.getSpeed(),但不幸的是,我需要它在零网络连接的环境中工作。想想地下或隧道里 基本上,我希望能够跟踪速度变化的时间间隔 |Consistent Motion|***stop***|Consistent Motion| 具体来说,我想做的就是

我现在面临着一个非常有趣的两难境地,在环顾四周并在谷歌上搜索之后,找到一个解决方案似乎不像我想象的那么容易

我希望使用Android的内置传感器(加速计),来收集移动车辆内的设备是否在持续运动。明显的替代方法是只使用GPS,然后使用Location.getSpeed(),但不幸的是,我需要它在零网络连接的环境中工作。想想地下或隧道里

基本上,我希望能够跟踪速度变化的时间间隔

|Consistent Motion|***stop***|Consistent Motion|
具体来说,我想做的就是

我不需要设备的速度等特定值。我只想能够区分设备处于恒定运动状态和完全停止状态


你们中有人做过这样的事吗?从一些答案来看,这似乎是非常困难的,由于传感器波动/不准确,存在很大的误差,或者基本上不可能实现。

我将尝试按照以下思路实现一些功能:

-

在这篇文章中,作者描述了如何使用Android中的陀螺仪和加速计来确定手机的位移


也就是说,仅将其用于用户是否驾驶的广泛描述。使用这种方法的精度受到加速度计和陀螺仪精度的严重限制不要将其用于位置确定

惯性导航需要上下文。一个已知的起始状态(例如“在X/Y交叉点静止不动”),然后是所有的加速度、方向和持续时间。如果你只有加速度计,那么你就有点被套住了


如果你得到的只是加速度,那么你就不知道发生了什么。正北方向的5个加速度重力说明不了什么。你是从静止(0公里/小时)开始的吗?您是否已经在以50公里/小时的速度行驶并正在加速?也许您实际上正在以50公里/小时的速度行驶并在正南方向减速。也许您正在以正西方向行驶,现在转向西北方向。

Google Play services活动识别将识别车内活动(与自行车/步行/步行/静止相比),并将给您启动的信心。不确定它是否能与零网络通信一起工作,但绝对值得一试,而不是重新发明轮子。@SamDozor看起来很有希望。文档提到数据来自位置服务,但是不需要公共访问位置和访问位置权限。您会怎么做这项工作至少没有netowork连接?我想它使用与Google Play Services的进程间通信,我认为Google Play Services几乎拥有所有权限。你至少需要添加自定义活动识别权限。我建议尝试一下他们在该链接提供的示例,看看它在Google Play Services下的工作情况如何奥德等。