Android近接センサーの値取得
近接センサーは、端末に物体が接近しているときの距離を検出するセンサー
これも、SensorManagerをつかえば値を取得できる
まず、SensorManagerのインストールを取得
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
次に、近接センサーの登録
これも
SensorManagerクラスの
registerListener()で登録
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()により解除可能になる
private void unregisterSensor(){ if(mSensorManager !=null){ mSensorManager.unregisterListener(this); mSensorManager = null; } mvibrator.cancel(); }
これで登録と解除はできるので
近接センサーの値取得
近接センサーの値は、
onServiceChanged()
のeventオブジェクトに格納されているので
そこから取得する
@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 なら
バイブで振動するようにしている