#プログラミング勉強日記
2021年1月20日
一昨日の記事でAndroidのセンサーAPIについてまとめた。今日はAndroidのセンサーの使い方を簡単にまとめる。
#Androidセンサーを使う方法
Androidセンサーを使う処理を説明する。
##1. SensorManagerを取得
SensorManagerを取得するためには、getSystemServiceメソッドを使う。引数には、android.contentパッケージのContextクラスの定数SENSOR_SERVICEを指定する。
// SensorManagerインスタンス
private SensorManager sensorManager;
@Override
public void onCreate(Bundle savedInstanceState) {
// SensorManagerのインスタンスを取得する
sensorManager = (SensorManager) this.getSystemService(SENSOR_SERVICE);
}
##2. イベントリスナーの実装
イベントリスナーは、何かしらのイベントが発生したときに呼ばれるクラスである。センサーイベントには、SensorEventListenerインタフェースをActivityに実装して具体的な処理をする。
SensorEventListenerインタフェースにはonAccuracycahngedとonSensorCahngedの2つのメソッドが定義されている。
public class SensorActivity extends Activity implements SensorEventListener {
@Override
// センサーの精度が変更されると呼ばれる
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
// センサーの値が変化すると呼ばれる
public void onSensorChanged(SensorEvent event) {
}
}
###イベントリスナーの登録と登録解除の方法
リスナーの登録にはSensorManagerクラスのregisterListenerメソッドを使う。引数には、センサーイベントを取得するリスナー、取得するセンサーの種類、取得する頻度を設定する。
registerListener(SensorEventListener listener, Sensor sensor, int rate)
イベントリスナーの登録解除には、SensorManagerクラスのunregisterListenerメソッドを使う。
protected void onPause() {
super.onPause();
if (sensorManager != null) {
sensorManager.unregisterListener(this);
}
}