Android 获取重力值
以下是自己编写的用于检测设备重力感应(加速度计)的 x、y、z 轴值的代码示例:
```java
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
public class GravityDetector implements SensorEventListener {
private SensorManager sensorManager;
private Sensor accelerometer;
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0]; // 获取x轴重力值
float y = event.values[1]; // 获取y轴重力值
float z = event.values[2]; // 获取z轴重力值
System.out.println("x: " + x + " | y: " + y + " | z: " + z);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// 精度变化处理
}
public void startGravityDetection() {
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
}
```java
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
public class GravityDetector implements SensorEventListener {
private SensorManager sensorManager;
private Sensor accelerometer;
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0]; // 获取x轴重力值
float y = event.values[1]; // 获取y轴重力值
float z = event.values[2]; // 获取z轴重力值
System.out.println("x: " + x + " | y: " + y + " | z: " + z);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// 精度变化处理
}
public void startGravityDetection() {
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
}
52.47KB
文件大小:
评论区