Android加速计数据类

Android加速计数据类,android,accelerometer,android-sensors,android-searchmanager,Android,Accelerometer,Android Sensors,Android Searchmanager,我有以下类从加速计中读取数据: public class Accelerometer implements SensorEventListener { private SensorManager mSensorManager; private Sensor mAccelerometer; float deltaX; float deltaY; float deltaZ; Activity activity; public Acc

我有以下类从
加速计中读取数据:

  public class Accelerometer implements SensorEventListener {

    private SensorManager mSensorManager;
    private Sensor mAccelerometer;

    float deltaX;
    float deltaY;
    float deltaZ;

    Activity activity;

    public Accelerometer(Activity act)
    {
        this.activity = act;
        mSensorManager = (SensorManager) this.activity.getSystemService(Context.SENSOR_SERVICE);
        mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
    }


    public float getDeltaX()
    {
        return this.deltaX;
    }

    public float getDeltaY()
    {
        return this.deltaY;
    }

    public float getDeltaZ()
    {
        return this.deltaZ;
    }


    @Override
    public void onSensorChanged(SensorEvent event) {
        // TODO Auto-generated method stub

        deltaX = event.values[0];
        deltaY = event.values[1];
        deltaZ = event.values[2];
    }
}
我使用以下代码从我的主
活动
类访问该类:

Accelerometer sbt = new Accelerometer (this);
tvX.setText(Float.toString(sbt.getDeltaX()) + " " +Float.toString(sbt.getDeltaY()) + " "+Float.toString(sbt.getDeltaZ()));

但是,它总是显示0,0,0。不确定当前代码有什么问题。任何帮助都将不胜感激。

加速计(和所有传感器数据)在回调系统上工作。在下次读取传感器之前,它不会呼叫您,在您注销之前,它将继续呼叫您的onSensorChanged。但是,如果您尝试在注册后立即设置文本,您将不会被调用。当您使用新值进行更新时,需要在onSensorChanged中设置textView。

您是在设备或模拟器上尝试吗?。。。