【问题标题】:Android Accelerometer is outputting Null(Zero) valuesAndroid Accelerometer 正在输出 Null(零)值
【发布时间】:2012-09-13 01:00:12
【问题描述】:

嘿,伙计们,我目前正在开展一个项目,该项目将访问加速度计并绘制我的代码当前无法正常工作的图表,我不确定原因,任何帮助将不胜感激。

程序需要记录数据 30 秒,然后输出一个图表,但它一直为所有 3 个轴输出 0 值。

代码:

public class AccelerometerData extends Activity implements SensorEventListener {

public float _x;
public float _y;
public float _z;

boolean senseA = false; 

int Time = 30;
int samplerate=10;
int sampleSize=(Time*1000)/samplerate;
public double[] X = new double[sampleSize];         
public double[] Y = new double[sampleSize];
public double[] Z = new double[sampleSize];

Sensor accelerometer;
SensorManager sm;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    sm=(SensorManager)getSystemService(SENSOR_SERVICE);
    accelerometer=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    sm.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_FASTEST);

    final Timer updateTimer = new Timer();
    updateTimer.scheduleAtFixedRate(new TimerTask(){
        public void run(){
            if (senseA= true){
                for (int i = 0; i < sampleSize; i++){
                    X[i] = _x;                                          
                    Y[i] = _y;
                    Z[i] = _z;                                                  
        }

            }                                                       
        }
    }, 0, samplerate);

  }

public void onAccuracyChanged(Sensor sensor, int accuracy) {
    // TODO Auto-generated method stub

}

public void onSensorChanged(SensorEvent event) {
    // TODO Auto-generated method stub
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
        _x = event.values[0];
        _y = event.values[1];
        _z = event.values[2];
        senseA = true;
        }

}

}

输出值如下:

AccelerometerData data= new AccelerometerData();

double[] dataX =  data.X;   

double[] dataY =  data.Y;

double[] dataZ =  data.Z;

int length = data.sampleSize;

提前感谢您的宝贵时间

【问题讨论】:

    标签: android null return accelerometer acceleration


    【解决方案1】:

    您从加速度计读取的代码看起来不错。

    但是,您不能使用

    启动 Activity
    AccelerometerData data= new AccelerometerData();
    

    相反,您可以使用 Intent 启动 Activity,例如

    startActivity(new Intent(this, AccelerometerData.class));
    

    此外,您存储加速度计值的方式看起来很假。我假设您想将第 i 个读数存储在 X、Y、Z 数组中的第 i 个位置。相反,您正在使用最新值覆盖数组的所有元素。

    【讨论】:

    • 得到它的工作谢谢!我花了一段时间才明白你的意思
    猜你喜欢
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多