アフィリエイト広告を利用しています

広告

posted by fanblog

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_FASTEST0ほぼリアルタイム
SensorManager.SENSOR_DELAY_GAME20ゲームなどの用途
SensorManager.SENSOR_DELAY_UI60通常App
SensorManager.SENSOR_DELAY_NORMAL80デフォルト


・遅延を減らせば減らすほど、消費電力もその分増えていくため、目的に沿った速度を選択。

・センサーごとに消費電力も取得できるため、パフォーマンス設定時には参考に。


(Google Developersはこちら

---
【更新履歴】
171203:初期作成

【対応必要箇所】(171205現在)
□androidHardware章の作成
□android機種ごとのセンサー対応表作成

posted by androidprogramblog at 21:00 | Android Studio
検索
<< 2022年06月 >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
最新記事
タグクラウド
カテゴリーアーカイブ
日別アーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。