android加速计registerListener

vis*_*lla 1 android accelerometer sampling

我是android的新手,正在研究加速度计.我想每秒收集20个x,y,z样本,为此我可以使用以下内容吗?int rate中的registerListener(SensorEventListener监听器,传感器传感器,int rate)可以使用3000000(微秒),这样我每3000000(微秒)或3秒就得到一个x,y,z值,所以它就像registerListener(这个,Accelerometer,3000000); 并在1秒内得到20个x,y,z样本.如果我错了可以有人建议我如何解决这个问题吗?

Foa*_*Guy 6

查看SensorManager.registerListener()的Javadocs

你需要传入4个常量中的一个,你不能像你想要的那样输入任意值.

速率传感器事件在.这只是对系统的暗示.可以比指定的速率更快或更慢地接收事件.通常会更快地收到事件.该值必须是SENSOR_DELAY_NORMAL,SENSOR_DELAY_UI,SENSOR_DELAY_GAME或SENSOR_DELAY_FASTEST之一,或者是事件之间所需的延迟(以微秒为单位).

所以一个示例调用可能如下所示:

registerListener(this, Accelerometer , SensorManager.SENSOR_DELAY_FASTEST);
Run Code Online (Sandbox Code Playgroud)

编辑: Tim.footInMouth()我没有看到定义的最后部分.你实际上可以传递它微秒.

我认为你的秒数的数学有点偏差

你想要每秒20个样本(1000毫秒)

所以你想要每50毫秒1个样本

微秒是毫秒的1/1000

所以1000微秒= 1毫秒

和50,000微秒= 50毫秒=每秒20次.

所以你的电话应该是:

registerListener(this, Accelerometer , 50000);
Run Code Online (Sandbox Code Playgroud)