1

センサー値が変更されたときに、それに応じてデータを表示する必要があるという要件があります。

現在私がやっていることは、現在の方位値と以前の方位値に 10 度の変化がある場合、何らかのアクションを実行することです。

問題は、(コードで述べたように) 10 度の変化ごとに、アクションが実行されていることです。10 度変化するたびにこのアクションを実行したくありません。デバイスの回転が停止するたびに、方位角の値が考慮され、アクションが実行されます。カウンターも利用しました。しかし、役に立たない。これは私を殺している。

ここに私のコードがあります、

 public void onSensorChanged(SensorEvent paramAnonymousSensorEvent) {

        CameraSearch.this.azimuth = paramAnonymousSensorEvent.values[0];

        CountDownTimer myCountDown = new CountDownTimer(2000, 1000) {
            public void onTick(long millisUntilFinished) {
                // update the UI with the new count
            }

            public void onFinish() {
                Log.d("","Counter finished");
                if (Math.abs(CameraSearch.this.azimuth - previousAzimuth) >= 10) {

                    Log.d("", "Azimuth: " + CameraSearch.this.azimuth
                            + "PreviousAzimuth: " + previousAzimuth);
                    CameraSearch.this.findScreenOrientation();
                    previousAzimuth = CameraSearch.this.azimuth;
                }
            }
        };
        // start the countDown
        myCountDown.start();

    }
};

解決策を教えてください。ユーザーがデバイスの回転を停止すると、現在の方位角の値が取得され、アクションが実行されます。私を助けてください!!

前もって感謝します!!

4

1 に答える 1