5

これは、実装時に取得する自動生成関数の 1 つです。

SensorEventListener

検索しましたが、「センサーの精度が変わったら何かをする」という説明以外は見つかりませんでした。近接センサーの精度はいつ、どのように変化しますか? そして、これは私のアプリでどのように役立ちますか?

4

1 に答える 1

12

私の理解によるとOnAccuracyChanged、センサーが異なる精度でレポートするたびにメソッドが呼び出され、onSensorChangedセンサーが新しい値をレポートするたびにメソッドが呼び出されます。

メソッドの活用方法など、私も同じ疑問を持っていましたonAccuracyChanged

精度が高い場合にのみセンサー データが必要であり、それ以下のデータは必要ないとします。これを行う 1 つの方法は、新しいグローバル変数を作成することです。メソッド内でonAccuracyChanged何らかの値に初期化し、onSensorChanged関数内で条件を追加しif..elseます。

サンプルコード:

public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // Do something here if sensor accuracy changes.
        // You must implement this callback in your code.
        if (sensor == mValuen) {
            switch (accuracy) {
                case 0:
                    System.out.println("Unreliable");
                    con=0;
                    break;
                case 1:
                    System.out.println("Low Accuracy");
                    con=0;
                    break;
                case 2:
                    System.out.println("Medium Accuracy");
                    con=0;

                    break;
                case 3:
                    System.out.println("High Accuracy");
                    con=1;
                    break;
            }
        }
    }

ここで条件を使用if (con==1)して、必要な変更を行います。

PSアンドロイドのドキュメントによると。

public abstract void onAccuracyChanged (int sensor, int accuracy)

センサーの精度が変化したときに呼び出されます。詳細については、SensorManager を参照してください。Parameterssensor 監視されているセンサーの ID accuracy このセンサーの新しい精度。したがって、精度が変化するたびに、その変化を参照できます。何か不足している場合はお知らせください。ありがとう。

于 2015-12-15T15:21:21.733 に答える