收藏
回答

目前Api只提供重力感应,没有加速度么?

问题模块
API和组件

如题,经过测试发现wx.onAccelerometerChange Api提供的值应该对应iOS的CMDeviceMotion下面的gravity的x,y,z

我想得到加速度,也就是对应iOS的CMDeviceMotion下面的userAcceleration,该如何获取?



这是iOS端的




下图是微信API提供的接口









最后一次编辑于  2017-01-04  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • William Wang
    William Wang
    2017-01-05

    感谢@jeff 的回答,我去试试看~

    2017-01-05
    赞同
    回复
  • jeff
    jeff
    2017-01-04

    不熟悉iOS,我理解你是需要扣除重力影响的加速度值是吧?


    如果我说对了,又不想等官方的话,可以自己山寨一下,做个信号处理。

    效果肯定没有底层做那么完美,不过考虑到微信暴露的采样频率很低,反正就意思意思。




    单纯重力值 = 低通滤波(加速度

    线性加速度(扣除重力影响的) = 加速度值 - 重力值


    // 来自Google Android文档的低通滤波

    public void onSensorChanged(SensorEvent event)

    { // alpha is calculated as t / (t + dT) // with t, the low-pass filter's time-constant // and dT, the event delivery rate final float alpha = 0.8; gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0]; gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1]; gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2]; linear_acceleration[0] = event.values[0] - gravity[0]; linear_acceleration[1] = event.values[1] - gravity[1]; linear_acceleration[2] = event.values[2] - gravity[2]; }


    2017-01-04
    赞同
    回复