UIAcceleration类的苹果文档指出:“当设备静止时,背面朝向水平面时,每个加速事件的值大致如下:x轴:0,y轴:0,z轴:-1。”现在,我感到困惑了!当你明确表示“设备静止不动”时,如何还存在加速度非零的情况呢?
因为重力作用于设备上,施加了恒定的1G加速度,所以你在Z轴上得到了-1。我猜你想要用户加速度,可以使用设备运动处理程序从DeviceMotion对象中获取,而不是使用加速度处理程序。 userAcceleration
属性过滤掉设备上的重力影响,只提供用户正在对其产生多大加速度。
它测量重力。单位被选择为,使得重力等于 9.81 米/秒^2 时,等于 1 单位。符号表示手机轴的方向。换句话说,是手机认为向下的方向。
在自由落体中,手机将 0 视为加速度。我不知道您想要把手机上下扔多少次来测试它 :)
G
表示,即重力加速度的单位乘以该值。我目前还没有足够的声望来直接回复@gigahari的评论,但是作为附言,人们应该意识到一些应用程序(如物理应用程序phyphox和PhysicsToolbox Sensor Suite)不报告(a+g) - phyphox的“with g”选项和PhysicsToolbox均报告矢量和(a-g),有时被称为“重量操作定义”。这个版本的重量操作定义的简要讨论可以在维基百科上找到https://en.wikipedia.org/wiki/Weight#Operational_definition。