Android近接センサーの値取得
近接センサーは、端末に物体が接近しているときの距離を検出するセンサー
これも、SensorManagerをつかえば値を取得できる
まず、SensorManagerのインストールを取得
1 | mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); |
次に、近接センサーの登録
これも
SensorManagerクラスの
registerListener()で登録
1 2 3 4 5 6 7 8 9 10 11 12 13 | private void registerSensor(){ if (mSensorManager == null ){ mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); mSensorManager.registerListener( this , mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY), mSensorManager.SENSOR_DELAY_UI ); } } |
次に、バッテリー消費対策のため
センサー解除の実装
SensorManagerクラスの
unregisterListener()により解除可能になる
1 2 3 4 5 6 7 8 9 10 | private void unregisterSensor(){ if (mSensorManager != null ){ mSensorManager.unregisterListener( this ); mSensorManager = null ; } mvibrator.cancel(); } |
これで登録と解除はできるので
近接センサーの値取得
近接センサーの値は、
onServiceChanged()
のeventオブジェクトに格納されているので
そこから取得する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @Override public void onSensorChanged(SensorEvent event){ //近接センサーの値を取得 if (event.sensor.getType() == Sensor.TYPE_PROXIMITY){ if (event.values[ 0 ] == 0 ){ mVibrator.vibrate( new long [] { 100 , 100 }, 0 ); } else { mVibrator.cancel(); } } } |
今回は、近接センサーの値が 0 なら
バイブで振動するようにしている