一、概述
传感器(英文名称:sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
Android的手机中有很多传感器可以运用,大致的例举一下,有如下的:
- define SENSOR_TYPE_ACCELEROMETER 1 //加速度
- define SENSOR_TYPE_MAGNETIC_FIELD 2 //磁力
- define SENSOR_TYPE_ORIENTATION 3 //方向
- define SENSOR_TYPE_GYROSCOPE 4 //陀螺仪
- define SENSOR_TYPE_LIGHT 5 //光线感应
- define SENSOR_TYPE_PRESSURE 6 //压力
- define SENSOR_TYPE_TEMPERATURE 7 //温度
- define SENSOR_TYPE_PROXIMITY 8 //接近
- define SENSOR_TYPE_GRAVITY 9 //重力
- define SENSOR_TYPE_LINEAR_ACCELERATION 10//线性加速度
二、程序如下
- 得到所有的传感器
final TextView tv = (TextView) findViewById(R.id.tv);
//1.得到传感器的管理器
SensorManager manager = (SensorManager) getSystemService(SENSOR_SERVICE);
//2.得到传感器集合
List<Sensor> list = manager.getSensorList(Sensor.TYPE_ALL);
StringBuilder stringBuilder = new StringBuilder();
//3.下面进行遍历
for (Sensor sensor : list) {
String name = sensor.getName();
int type = sensor.getType();
stringBuilder.append("name="+name+"--type="+type);
Log.i("sky","type=="+type+" name==="+name);
}
tv.setText(stringBuilder.toString());
}
- 光传感示例
//1.得到传感器的管理器
SensorManager manager = (SensorManager) getSystemService(SENSOR_SERVICE);
//2.得到光传感器的对象
Sensor sensor = manager.getDefaultSensor(Sensor.TYPE_LIGHT);
//3.对光的强弱进行监听
manager.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
float value=event.values[0];
tv.setText("目前的光线强度是:"+value);
Log.i("sky", ""+value);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}, sensor, SensorManager.SENSOR_DELAY_NORMAL);