我正试图从sensor
fragment
陀螺仪读数
我实施了SensorEventListener
public class Fragment1 extends Fragment implements View.OnClickListener, SensorEventListener
private SensorManager mSensorManager;
private Sensor mSensorGyro;
float [] history = new float[2];
public void onCreate(Bundle savedInstanceState) {
getActivity().getSystemService(Context.SENSOR_SERVICE);
mSensorGyro = mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
}
这是我如何处理传入的传感器读数。
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
Log.d(TAG, "onSensorChanged: ");
switch (sensorEvent.sensor.getType()) {
case Sensor.TYPE_GYROSCOPE:
float xChange = history[0] - sensorEvent.values[0];
float yChange = history[1] - sensorEvent.values[1];
history[0] = sensorEvent.values[0];
history[1] = sensorEvent.values[1];
if (xChange > 2) {
//clockwise
Log.d(TAG, "onSensorChanged: Clockwise");
} else if (xChange < -2) {
//anticlockwise
Log.d(TAG, "onSensorChanged: Anti-Clockwise");
}
if (yChange > 2) {
//forward
Log.d(TAG, "onSensorChanged: Forward");
}
}
}
当我在我的Android设备上运行时,我没有得到任何回读,从android logcat上缺少的日志判断。
可能是什么问题?
答案 0 :(得分:0)
缺少监听器注册
mSensorManager.registerListener(this, mSensorGyro, SensorManager.SENSOR_DELAY_NORMAL);