如何在logcat上打印GyroSensor的Android值
嗨,我想在Android中使用GyroSensor。我想得到logcat上陀螺仪传感器的值。但是,我不能在logcat上打印值。错误名称为“传感器或侦听器为空”。我的密码在下面。请帮帮我。另外,我使用了API25Amulator。如果我的代码错了,你可以给其他代码。 公共类MainActivity扩展了AppCompatActivity{如何在logcat上打印GyroSensor的Android值,android,sensors,Android,Sensors,嗨,我想在Android中使用GyroSensor。我想得到logcat上陀螺仪传感器的值。但是,我不能在logcat上打印值。错误名称为“传感器或侦听器为空”。我的密码在下面。请帮帮我。另外,我使用了API25Amulator。如果我的代码错了,你可以给其他代码。 公共类MainActivity扩展了AppCompatActivity{ private SensorManager mSensorManager = null; private SensorEventListener mGyroL
private SensorManager mSensorManager = null;
private SensorEventListener mGyroLis;
private Sensor mGyroSensor = null;
private double timestamp;
private double pitch;
private double roll;
private double yaw;
private double dt;
private double RAD2DGR = 180 / Math.PI;
private static final float NS2S = 1.0f/10000000000.0f;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mGyroSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
mGyroLis = new GyroscopeListener();
findViewById(R.id.a_start).setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event){
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
mSensorManager.registerListener(mGyroLis, mGyroSensor, SensorManager.SENSOR_DELAY_UI);
break;
case MotionEvent.ACTION_UP:
mSensorManager.unregisterListener(mGyroLis);
break;
}
return false;
}
});
}
@Override
public void onPause(){
super.onPause();
Log.e("LOG","onpause()");
mSensorManager.unregisterListener(mGyroLis);
}
@Override
public void onDestroy(){
super.onDestroy();
Log.e("LOG","ondestroy()");
mSensorManager.unregisterListener(mGyroLis);
}
private class GyroscopeListener implements SensorEventListener {
@Override
public void onSensorChanged(SensorEvent event){
double gyroZ = event.values[2];
dt = (event.timestamp - timestamp) * NS2S;
timestamp = event.timestamp;
if(dt - timestamp*NS2S != 0){
yaw = yaw + gyroZ*dt;
Log.d("LOG", "GYROSCOPE [z]:" + String.format("%.4f", event.values[2])+"[yaw]:"+String.format("%.4f", yaw+RAD2DGR));
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy){
}
}
}