8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Android】AndroidセンサーAPIの種類

Last updated at Posted at 2021-01-18

#プログラミング勉強日記
2021年1月18日
Android端末には様々なセンサーが搭載されている。具体的には温度や方位、方角、明るさ、傾き、加速度センサーなどがある。そういったセンサーを使うために必要なセンサーAPIについてまとめる。

#AndroidのセンサーAPI
 Androidでは、センサーによって変換された電気信号を取得するためのセンサーAPIが提供されている。このAPIによってセンサーを用いたアプリを簡単に開発できる。
 android.hardwareパッケージには、SensorManager、Sensor、SensorEvent、SensorEventListenerの4つのセンサーAPIが提供されている。

##SensorManager
 センサーにアクセスするためのクラス。各センサーのイベントリスナーの登録や解除、センサーの情報の取得を行う。

SensorManagerクラスのメソッド
// イベントリスナーを登録するメソッド
registerListener(SensorEventListener listener, Sensor sensor, int rate, Handler handler)
registerListener(SensorEventListener listener, Sensor sensor, int rate)

// イベントリスナーを解除するメソッド
unregisterListener(SensorEventListener listener, Sensor sensor)
unregisterListener(SensorEventListener listener)

// 使用可能なセンサーをリストで取得するメソッド
getSensorList(int type)
定数名 説明
SENSOR_DELAY_FASTEST 最速通知頻度(デバイスのスペック次第)
SENSOR_DELAY_NORMAL 通常のサンプリング
SENSOR_DELAY_GAME ゲームに適した早い反応速度
SENSOR_DELAY_UI UI向けの遅い反応速度(ゲームではないアプリ向け)

##Sensor
 各センサーに関する情報を管理するクラス。

Sensorクラスのメソッド
// センサーが検出できる最大値を取得するメソッド
getMaximumRange() 
// センサーの名前を取得するメソッド
getName() 
// センサーからの電気信号をmAで取得するメソッド
getPower() 
// センサーの精度を取得するメソッド
getResolution() 
// センサーの種類を取得するメソッド
getType() 
// センサーのベンダー名を取得するメソッド
getVendor() 
// センサーのバージョンを取得するメソッド
getVersion() 

センサーの種類

名前 説明
TYPE_ACCELEROMETER 加速度センサー
TYPE_MAGNETIC_FIELD 磁界(磁気)センサー
TYPE_ORIENTATION 方位(傾き)センサー
TYPE_GYROSCOPE ジャイロスコープセンサー
TYPE_LIGHT 照度センサー
TYPE_PRESSURE 圧力センサー
TYPE_TEMPERATURE 温度センサー
TYPE_PROXIMITY 近接センサー
TYPE_GRAVITY 重力センサー
TYPE_LINEAR_ACCELERATION 直線加速度センサー
TYPE_ROTATION_VECTOR 回転角度センサー
TYPE_ALL 指定したセンサーの全ての値が取得できる

##SensorEvent
 センサーが取得できる情報を1つにまとめて管理するクラス。

SensorEventクラスのフィールド
// センサーの精度を格納するフィールド
int accuracy 
// Sensorオブジェクトを保持するフィールド
Sensor sensor
// タイムスタンプを格納するフィールド
long timestamp 
// センサーの値を格納するフィールド
float[] values 

##SensorEventListener
 センサー関連のイベントを取得するためのイベントリスナー。SensorManagerのメソッドでこのイベントリスナーの登録や解除をすると、センサーからの情報を取得できる。

SensorEventListenerのメソッド
// センサーの精度が変わったときに呼び出されるメソッド
onAccuracyChanged(Sensor sensor, int accuracy)
// センサーの値が変わったときに呼び出されるメソッド
onSensorChanged(SensorEvent event)

#参考文献
センサーの概要

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?