Androidのセンサーを調べてみる
Android端末は豊富なセンサーの機能を持っています。
これで、遊ばなくて何で遊ぶ?って位のものです。
で、どんなセンサーが存在するのか、分からなかったので一覧を作ってみました。
SensorクラスのTYPEで設定されているものが、Androidがサポートしているセンサーです。
TYPE_ACCELEROMETER | 加速度センサー |
---|---|
TYPE_AMBIENT_TEMPERATURE | 温度センサー |
TYPE_GRAVITY | 重力センサー |
TYPE_GYROSCOPE | ジャイロセンサー |
TYPE_LIGHT | 照度センサー |
TYPE_LINEAR_ACCELERATION | リニア加速度センサー |
TYPE_MAGNETIC_FIELD | 地磁気センサー |
TYPE_PRESSURE | 圧力センサー |
TYPE_PROXIMITY | 近接センサー |
TYPE_RELATIVE_HUMIDITY | 湿度センサー |
TYPE_ROTATION_VECTOR | 回転ベクトルセンサー |
TYPE_ORIENTATION | 方位センサー(非推奨) |
TYPE_TEMPERATURE | 温度センサー(非推奨) |
11個のセンサーがサポートされています。
手元の端末で、どのようなセンサーが端末に搭載されているのか確認してみたいと思います。
確認するためには、「SensorManager」クラスの「getSensorList」で保持してるセンサーを取得して確認します。
こんな感じです。
これで確かめた、手持ちの端末が以下になります。
Nexus S
- Sensor:KR3DM 3-axis Accelerometer
- Sensor:AK8973 3-axis Magnetic field sensor
- Sensor:GP2A Light sensor
- Sensor:GP2A Proximity sensor
- Sensor:K3G Gyroscope sensor
- Sensor:Rotation Vector Sensor
- Sensor:Gravity Sensor
- Sensor:Linear Acceleration Sensor
- Sensor:Orientation Sensor
- Sensor:Corrected Gyroscope Sensor
Galaxy Note
- Sensor:K3DH Acceleration Sensor
- Sensor:AK8975 Magnetic field Sensor
- Sensor:AK8975 Orientation Sensor
- Sensor:GP2A Light Sensor
- Sensor:GP2A Proximity Sensor
- Sensor:K3G Gyroscope Sensor
- Sensor:BMP180 Pressure Sensor
- Sensor:Gravity Sensor
- Sensor:Linear Acceleration Sensor
- Sensor:Rotation Vector Sensor
Galaxy Nexus
- Sensor:GP2A Light sensor
- Sensor:GP2A Proximity sensor
- Sensor:BMP180 Pressure sensor
- Sensor:MPL Gyroscope
- Sensor:MPL Accelerometer
- Sensor:MPL Magnetic Field
- Sensor:MPL Orientation
- Sensor:MPL Rotation Vector
- Sensor:MPL Linear Acceleration
- Sensor:MPL Gravity
- Sensor:Rotation Vector Sensor
- Sensor:Gravity Sensor
- Sensor:Linear Acceleration Sensor
- Sensor:Orientation Sensor
- Sensor:Corrected Gyroscope Sensor
どれもこれも、Sumsung端末…。
それぞれが何なのか、詳しくは分からないですが、この「getSensorList」で対象のタイプ例えば、圧力センサーがあるか調べたければ
「List<Sensor> sensorList = mSensorManager.getSensorList(Sensor.TYPE_PRESSURE);」として、戻り値があるかどうか確認する事で対応しているかどうか確認が出来るようです。
今回使用した、サンプルプログラムはgithubにアップしてあります。