最終更新:
moonlight_aska 2013年07月07日(日) 10:14:46履歴
Android SDKのセンサー(Sensor)クラスで, 以下のようなセンサーの種類が定義されている.
上記は, Android 1.6で定義されているものであり, バージョンによっては新たなセンサーが追加されている場合がある.
注) API Level 8で, TYPE_ORIENTATIONは非推奨となった!
下記は, Android 2.3で追加されたものである.
下記は, Android 4.0で追加されたものである.
注) TYPE_AMBIENT_TEMPERATUREの追加により, TYPE_TEMPERATUREは非推奨となった!
また, ハードウェアによるセンサーの実装は任意である.
そこで, Android端末が搭載してるセンサーの一覧を取得するには, センサー(Sensor)クラスとセンサーマネージャー(SensorManager)クラスを使用する.

2011.10.30

2013.7.6
端末:Nexus 7 / Android 4.2

2013.7.7
端末:Nexus 10 / Android 4.2

定数名 | センサー名 | 単位 |
TYPE_ACCELEROMETOR | 加速度センサー | m/s^2 |
TYPE_GYROSCOPE | ジャイロセンサー | rad/s |
TYPE_LIGHT | 照度センサー | lux |
TYPE_MAGNETIC_FIELD | 磁界センサー | uT |
TYPE_ORIENTATION | 傾きセンサー | deg |
TYPE_PRESSURE | 圧力センサー | hPa |
TYPE_PROXIMITY | 近接センサー | cm |
TYPE_TEMPERATURE | 温度センサー | ℃ |
注) API Level 8で, TYPE_ORIENTATIONは非推奨となった!
下記は, Android 2.3で追加されたものである.
定数名 | センサー名 | 単位 |
TYPE_GRAVITY | 重力センサー | m/s^2 |
TYPE_LINEAR_ACCELERATION | 直線化速度センサー | m/s^2 |
TYPE_ROTATION_VECTOR | 回転ベクトルセンサー |
下記は, Android 4.0で追加されたものである.
定数名 | センサー名 | 単位 |
TYPE_AMBIENT_TEMPERATURE | 温度センサー | ℃ |
TYPE_RELATIVE_HUMIDITY | 湿度センサー | % |
また, ハードウェアによるセンサーの実装は任意である.
そこで, Android端末が搭載してるセンサーの一覧を取得するには, センサー(Sensor)クラスとセンサーマネージャー(SensorManager)クラスを使用する.
- Sensor01.java
- getSystemServiceメソッドで, SENSOR_SERVICEを指定してSensorManagerのインスタンスを取得する.
- SensorManager#getSensorListメソッドで, センサーのインスタンスの一覧を取得する.
- Sendor#getNameメソッドで, 各センサーの名前を取得する.
package com.moonlight_aska.android.sensor01;
import java.util.List;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class Sensor01 extends Activity {
private SensorManager manager;
private TextView nameLists;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
nameLists = (TextView)findViewById(R.id.namelist_id);
manager = (SensorManager)getSystemService(SENSOR_SERVICE);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
List<Sensor> sensors = manager.getSensorList(Sensor.TYPE_ALL);
String str = "実装されているセンサー一覧:\n";
for(Sensor s : sensors) {
str += s.getName() + "\n";
}
nameLists.setText(str);
}
}
- 動作例

2011.10.30

2013.7.6
端末:Nexus 7 / Android 4.2

2013.7.7
端末:Nexus 10 / Android 4.2

コメントをかく