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 なら
バイブで振動するようにしている