陀螺仪代码不显示值
Gyroscope code not displaying values
这是一个简单的代码,用于从陀螺仪获取 X、Y 和 Z 轴值的变化并将它们显示在三个文本框中,但它不产生任何输出。文本框保持不变。我错过了什么?
public class Orientation extends AppCompatActivity implements SensorEventListener {
TextView textX, textY, textZ;
SensorManager sensorManager;
Sensor sensor;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_orientation);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
textX = (TextView) findViewById(R.id.textX);
textY = (TextView) findViewById(R.id.textY);
textZ = (TextView) findViewById(R.id.textZ);
}
public void onResume() {
super.onResume();
sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}
public void onStop() {
super.onStop();
sensorManager.unregisterListener(this);
}
public void onAccuracyChanged(Sensor sensor, int acc) {
}
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
textX.setText("X : " + (int) x + " rad/s");
textY.setText("Y : " + (int) y + " rad/s");
textZ.setText("Z : " + (int) z + " rad/s");
}
};
编辑:
需要先检查传感器是否存在
这个解决方案非常蹩脚。 phone 没有陀螺仪。
这是一个简单的代码,用于从陀螺仪获取 X、Y 和 Z 轴值的变化并将它们显示在三个文本框中,但它不产生任何输出。文本框保持不变。我错过了什么?
public class Orientation extends AppCompatActivity implements SensorEventListener {
TextView textX, textY, textZ;
SensorManager sensorManager;
Sensor sensor;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_orientation);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
textX = (TextView) findViewById(R.id.textX);
textY = (TextView) findViewById(R.id.textY);
textZ = (TextView) findViewById(R.id.textZ);
}
public void onResume() {
super.onResume();
sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}
public void onStop() {
super.onStop();
sensorManager.unregisterListener(this);
}
public void onAccuracyChanged(Sensor sensor, int acc) {
}
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
textX.setText("X : " + (int) x + " rad/s");
textY.setText("Y : " + (int) y + " rad/s");
textZ.setText("Z : " + (int) z + " rad/s");
}
};
编辑: 需要先检查传感器是否存在
这个解决方案非常蹩脚。 phone 没有陀螺仪。