在Android传感器框架中,SensorEvent数据值长度是固定的。如果我们想要更改这个长度,例如增加一个新的属性值,我们需要进行以下步骤:
public class MySensor extends Sensor {
// Sensor types
public static final int TYPE_MY_SENSOR = 100;
// Property values
public float property;
public MySensor() {
super(TYPE_MY_SENSOR, "My Sensor");
property = 0.0f;
}
}
public class MySensorEventListener implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mSensor;
private float x, y, z, property;
public MySensorEventListener(Context context) {
mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(MySensor.TYPE_MY_SENSOR);
}
public void register() {
mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
public void unregister() {
mSensorManager.unregisterListener(this);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == MySensor.TYPE_MY_SENSOR) {
x = event.values[0];
y = event.values[1];
z = event.values[2];
property