我
搜索一种方式来检测手机的移动,无论
用户如何握住手机.
一些例子:
>我对垂直运动感兴趣(像使用者拉起手机),如果电话放在桌子上,或者握在手上(可能是颠倒的话),那么“忽略”.
>也有兴趣的水平运动(像用户把手机远离身体)也“忽视”用户如何持有电话.
背景是我想要识别用户是否将手机拉出口袋(如拉长30-40厘米,水平方向也有一厘米).
我认为我必须从userAcceleration和态度中获得一个组合.但是我没有找到正确的数学.
不确定你的意思是“正确的数学”.但是,我会读出加速度计,并总结所有3个方向(x / y / z)的绝对值.这将为您提供一个单独的数字加速,独立于手机的方向或运动的方向.
更好的是计算RMS加速度,即求和x / y / z加速度的平方,并计算和的平方根.
这种方法的明显缺点是它没有给出关于运动方向的信息.您可以添加一些阈值或滤波来区分单个线性运动与振动(例如,通过测量两个加速事件之间的时间).
此外,您可以确定高度的变化(这与电话方向无关),但我怀疑是否可以精确地测量30 … 40厘米的差异.