2016-09-26 40 views
0

閱讀我試圖讓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

缺少聽衆寄存器

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