2017年12月03日
SensorEventListenerの使い方備忘録
SensorEventListener
概要
・android.hardware配下のリスナー
methods
- onAccuracyChanged
センサーの精度が変更されたときにのみ呼び出される関数。
基本的には扱うことはないと考えてよい。@Override
public void onAccuracyChanged(Sensor sensor, int accuracy){
//処理の記載
} - onSensorrChangedd
センサーイベントが発生したときに呼び出される。
センサー値取得後の処理を記載。@Override
public void onSensorChanged(SensorEvent event){
//処理の記載
}
使い方
・androidStudioのメイン画面のxmlに追加してテストしてみたい場合。
・amazon Fire8で動作確認済みの3つのセンサーをswich文で切り替え。
⇒swich文を修正で対応可能
sensorEventListenerにオーバーロードで処理を実行
private final SensorEventListener listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
switch (sensorEvent.sensor.getType()){
case Sensor.TYPE_LIGHT:
//処理を記載
break;
case Sensor.TYPE_ACCELEROMETER:
//処理を記載
break;
case Sensor.TYPE_GYROSCOPE:
//処理を記載
break;
default:
//処理を記載
break;
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
};
ButtonのclickListenerなどに以下を記入でSenser起動
List<Sensor> sensorList = sensorManager.getSensorList(Sensor.<<利用したいセンサー>>);
if(sensorList.size()>0){
Sensor s = sensorList.get(0);
sensorManager.registerListener(this.listener,s,sensorManager.<<描画速度>>);
}
指定可能センサー一覧
※※※使用機種によって異なる※※※〇対応しているセンサー一覧の取得
List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
〇センサー一覧
- Sensor.TYPE_ACCELEROMETER
- Sensor.TYPE_MAGNETIC_FIELD
- Sensor.TYPE_GYROSCOPE
- Sensor.TYPE_LIGHT
- Sensor.TYPE_PRESSURE
- Sensor.TYPE_PROXIMITY
- Sensor.TYPE_GRAVITY
- Sensor.TYPE_LINEAR_ACCELERATION
- Sensor.TYPE_ROTATION_VECTOR
- Sensor.TYPE_ORIENTATION
- Sensor.TYPE_RELATIVE_HUMIDITY
- Sensor.TYPE_AMBIENT_TEMPERATURE
- Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED
- Sensor.TYPE_GAME_ROTATION_VECTOR
- Sensor.TYPE_GYROSCOPE_UNCALIBRATED
- Sensor.TYPE_POSE_6DOF
- Sensor.TYPE_STATIONARY_DETECT
- Sensor.TYPE_MOTION_DETECT
- Sensor.TYPE_HEART_BEAT
- Sensor.TYPE_LOW_LATENCY_OFFBODY_DETECT
- Sensor.TYPE_ACCELEROMETER_UNCALIBRATED
描画速度
設定 | 遅延時間(ms) | 備考 |
SensorManager.SENSOR_DELAY_FASTEST | 0 | ほぼリアルタイム |
SensorManager.SENSOR_DELAY_GAME | 20 | ゲームなどの用途 |
SensorManager.SENSOR_DELAY_UI | 60 | 通常App |
SensorManager.SENSOR_DELAY_NORMAL | 80 | デフォルト |
・遅延を減らせば減らすほど、消費電力もその分増えていくため、目的に沿った速度を選択。
・センサーごとに消費電力も取得できるため、パフォーマンス設定時には参考に。
(Google Developersはこちら)
---
【更新履歴】
171203:初期作成
【対応必要箇所】(171205現在)
□androidHardware章の作成
□android機種ごとのセンサー対応表作成
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
posted by androidprogramblog at 21:00
| Android Studio