如何存储加速度计值

时间:2011-06-17 20:35:26

标签: android progress-bar accelerometer

我有这段代码:

public class Chronom extends Activity 
{

    Chronometer mChronometer;
    ProgressBar progre;

    int total=1;


    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        //layout
        setContentView(R.layout.main7watingscreen);

        //Start Chronometer
        mChronometer = (Chronometer) findViewById(R.id.chrono1);
        mChronometer.start();

        progre = (ProgressBar) findViewById(R.id.progressBar1);

        MyCount counter = new MyCount(31000,300);
        counter.start();
    }


    public class MyCount extends CountDownTimer
        {
            public MyCount(long millisInFuture, long countDownInterval) 
            {
                super(millisInFuture, countDownInterval);
            }
            @Override
            public void onFinish() 
            {
                Intent myIntent = new Intent( Chronom.this, MainMenu.class);
                startActivityForResult(myIntent, 0);
            }
            @Override
            public void onTick(long millisUntilFinished) 
            {
                total++;
                progre.setProgress(total);         
            }   

        }

我希望在矢量中存储加速度计值(x,y和z)(可以是其他形式,我想知道你的意见)。

但是我想在进度条正在填充的同时执行此操作(它在30秒后停止)。比如在1秒开始存储并在30秒后停止。

如果您不理解我的问题,请说出来,我会更好地解释。

怎么做?请帮忙!

1 个答案:

答案 0 :(得分:1)

通过onSensorChanged()回调,您可以在每次更改时获取传感器值(请参阅SensorListener参考)。 您无法在设定的时间查询传感器数据

有一种解决方法:让监听器在每次更改时保存值(即在onSensorChanged()方法内),并使用计时器查询这些保存的值。例如,您可以使用static float[]数组或SharedPreferences值。