没有从片段类获取传感器读数

时间:2016-09-26 02:37:01

标签: android android-sensors sensormanager

我正试图从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上缺少的日志判断。

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

缺少监听器注册

mSensorManager.registerListener(this, mSensorGyro, SensorManager.SENSOR_DELAY_NORMAL);