1

これが私のコードです。私はアンドロイド開発が初めてです。registerListenerボタンクリックイベントを呼び出しました。加速度計からデータを取得し始めますがunregisterListener、別のボタンをクリックして呼び出すと、機能しません。

public void startButton(View view){
    findViewById(R.id.stop).setEnabled(true);
    findViewById(R.id.start).setEnabled(false);
    Intent intent = getIntent();
    selsensors = intent.getStringExtra(SensorsList.SELECTED_SENSORS);
    mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
    senList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    mSensorManager.registerListener(this, mAccelerometer,    mSensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event){
    if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
        ax = event.values[0];
        ay = event.values[1];
        az = event.values[2];
        Toast.makeText(this, "X: "+ax+"\nY: "+ay+"\nZ: "+az, Toast.LENGTH_SHORT).show();
    }
}
public void stopButton(View view){
    mSensorManager.unregisterListener(this);
    this.finish();
}
4

1 に答える 1

0

センサーをパラメーターとする登録解除機能を試しましたか?さらに、非推奨の登録解除関数を呼び出していませんか?http://developer.android.com/reference/android/hardware/SensorManager.html

mSensorManager.registerListener(this, mAccelerometer,    mSensorManager.SENSOR_DELAY_NORMAL);
mSensorManager.unregisterListener(this, mAccelerometer);
于 2012-11-19T08:37:30.450 に答える