2017-01-02 124 views
2

未找到对此的答案。 我正在研究一个应用程序,我必须在两个单独的活动中实时绘制加速度计和陀螺仪值。加速度计工作得很好,但是在随机时间段(从大约1秒到10秒)之后陀螺仪活动中,值停止来,因此绘图也停止。 这是sensorChanged代码。一段时间后,活动停止接收陀螺仪传感器值

public SensorEventListener gyroListener = new SensorEventListener() { 
    public void onAccuracyChanged(Sensor sensor, int acc) { } 

    public void onSensorChanged(SensorEvent event) { 
     float x = event.values[0]; 
     float y = event.values[1]; 
     float z = event.values[2]; 
     seriesx.appendData(new DataPoint(Lastx++,x),true,50); 
     seriesy.appendData(new DataPoint(Lastx++,y),true,50); 
     } 
}; 

编辑:注册和未注册的传感器:

public void onResume() { 
    super.onResume(); 
    sensorManager.registerListener(gyroListener, sensor, 
      SensorManager.SENSOR_DELAY_NORMAL); 
} 

public void onStop() { 
    super.onStop(); 
    sensorManager.unregisterListener(gyroListener); 
} 
+0

你可以发布你在哪里注册和取消注册你的传感器监听器,以上信息不足以预测问题。 – Nas

+0

编辑答案。 – DivisionSi

+0

您是否设置了gysoscope的传感器管理器,如sensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);也可以在这样的sensorchanged方法检查if(event.sensor.getType()== Sensor.TYPE_GYROSCOPE){}它有助于整理你的pblm。 – Nas

回答

2

的问题是在我上运行的应用程序的智能手表的陀螺仪传感器:摩托360 我然后测试华为手表上的应用程序,它工作得很好。