Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在logcat上打印GyroSensor的Android值_Android_Sensors - Fatal编程技术网

如何在logcat上打印GyroSensor的Android值

如何在logcat上打印GyroSensor的Android值,android,sensors,Android,Sensors,嗨,我想在Android中使用GyroSensor。我想得到logcat上陀螺仪传感器的值。但是,我不能在logcat上打印值。错误名称为“传感器或侦听器为空”。我的密码在下面。请帮帮我。另外,我使用了API25Amulator。如果我的代码错了,你可以给其他代码。 公共类MainActivity扩展了AppCompatActivity{ private SensorManager mSensorManager = null; private SensorEventListener mGyroL

嗨,我想在Android中使用GyroSensor。我想得到logcat上陀螺仪传感器的值。但是,我不能在logcat上打印值。错误名称为“传感器或侦听器为空”。我的密码在下面。请帮帮我。另外,我使用了API25Amulator。如果我的代码错了,你可以给其他代码。 公共类MainActivity扩展了AppCompatActivity{

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){

    }

}
}