2017-01-02 67 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 我然後測試華爲手錶上的應用程序,它工作得很好。