2012年5月20日日曜日

近接センサ

proximity(照度センサ)を下記のコードで確認しました。
public class SensorTestActivity extends Activity
        implements SensorEventListener {

    @Override
    public final void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        SensorManager manager =
                (SensorManager) getSystemService(SENSOR_SERVICE);
        List sensors = manager.getSensorList(Sensor.TYPE_PROXIMITY);
        if (sensors.size() > 0) {
            Sensor sensor = sensors.get(0);
            Log.d("SensorTest", "Sensor: " + sensor.getName());
            manager.registerListener(this, sensor,
                    SensorManager.SENSOR_DELAY_NORMAL);
        }
    }

    @Override
    public final void onAccuracyChanged(final Sensor sensor, final int i) {
        Log.d("SensorTest", "onAccuracyChanged: " + i);
    }

    @Override
    public final void onSensorChanged(final SensorEvent sensorevent) {
        Log.d("SensorTest", "onSensorChanged: " + sensorevent.values[0]);
    }
}
結果は、
05-20 13:18:40.623: D/SensorTest(16280): Sensor: BH1772GLC proximity sensor
05-20 13:18:40.705: D/SensorTest(16280): onAccuracyChanged: 3
05-20 13:18:40.706: D/SensorTest(16280): onSensorChanged: 1.0
05-20 13:18:43.633: D/SensorTest(16280): onSensorChanged: 0.0
05-20 13:18:44.615: D/SensorTest(16280): onSensorChanged: 1.0
05-20 13:18:45.504: D/SensorTest(16280): onSensorChanged: 0.0
05-20 13:18:46.111: D/SensorTest(16280): onSensorChanged: 1.0
05-20 13:18:48.121: D/SensorTest(16280): onSensorChanged: 0.0
05-20 13:18:48.446: D/SensorTest(16280): onSensorChanged: 1.0
物を近づけた時0.0、遠ざけた時1.0になりました。
距離ではなく2値になっていますが、リファレンスにも
Note: Some proximity sensors only support a binary near or far measurement. In this case, the sensor should report its maximum range value in the far state and a lesser value in the near state.
とあり、BH1772GLCの場合、これで正しいようです。

余談ですが、当初はセンサ値が0.0から変化しませんでした。
液晶保護フィルタを検出していたようで、はがすと上記のようになりました。
これまで、電話した後に画面が消えていて通話を終了できなかったのですが、これが問題だったようです。はがした状態では普通に使えました。

0 件のコメント:

コメントを投稿