1

私は別の Android 接続の問題でここにいます。私のテスト アプリケーションでは、単純な Service を作成して、加速度計を処理する SensorEventListener を実装します。

デバイスが動かなかった場合、このサービスは現在のデバイス位置と次回のテストを取得する必要があります。私はこのようにそれをやろうとしました(疑似コード):

  onStart() {
    registerListener(listener, accelerometer, SENSOR_DELAY_UI);
    unregisterListener();
  }

リスナーは、次のように定義されたクラス サブクラスです。

class DefaultValuesListener implements SensorEventListener {
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
    lastX = event.values[0];
    lastY = event.values[0];
    return;
    }
}

次に、サービス関数 onSensorChanged で動きをテストします。私はそれを見つけて、lastXまだlastYゼロです。位置が設定されていません。

デフォルト値が設定されているときはいつでもテストを行う必要があることはわかっています。そうでない場合は、Services onSensorChanged に設定しますが、これは最後の可能な解決策です。

public void onSensorChanged(SensorEvent event) {
    if (!defaultPosSet) {
        lastX = event.values[0];
        lastY = event.values[0];
    } else {
        // DO test there ...
    }
}

より良いものはありますか?

編集: 誰もこの質問に答えないので、次のコードを使用します:

public void onSensorChanged(SensorEvent event) {
    if (!defaultPosSet) {
        lastX = event.values[0];
        lastY = event.values[0];
    } else {
        // DO test there ...
    }
}
4

0 に答える 0