Android中集成了一些传感器,加速度,陀螺仪,光线,电磁场,方向,压力,距离,温度等,利用这些传感器可以开发出有趣的应用。虽然不是所有的硬件厂商都支持这些传感器,但是常用传感器还是被支持的。通过SensorManager可以获得传感器的相关信息,获得SensorManager的代码如下:
SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
然后通过sm的一些方法可以获得传感器的信息:
List<Sensor> allSensors = sm.getSensorList(Sensor.TYPE_ALL);
通过对allSensors的遍历,可以查看不同传感器的具体信息。
for (Sensor s : allSensors) {
String tempString = "\n" + " 设备名称:" + s.getName() + "\n" + " 设备版本:" + s.getVersion() + "\n" + " 供应商:" + s.getVendor() + "\n";
switch (s.getType()) {
case Sensor.TYPE_ACCELEROMETER:
tx1.setText(tx1.getText().toString() + s.getType() + " 加速度传感器" + tempString);
break;
case Sensor.TYPE_GYROSCOPE:
tx1.setText(tx1.getText().toString() + s.getType() + " 陀螺仪传感器" + tempString);
break;
case Sensor.TYPE_LIGHT:
tx1.setText(tx1.getText().toString() + s.getType() + " 环境光线传感器" + tempString);
break;
case Sensor.TYPE_MAGNETIC_FIELD:
tx1.setText(tx1.getText().toString() + s.getType() + " 电磁场传感器" + tempString);
break;
case Sensor.TYPE_ORIENTATION:
tx1.setText(tx1.getText().toString() + s.getType() + " 方向传感器" + tempString);
break;
case Sensor.TYPE_PRESSURE:
tx1.setText(tx1.getText().toString() + s.getType() + " 压力传感器" + tempString);
break;
case Sensor.TYPE_PROXIMITY:
tx1.setText(tx1.getText().toString() + s.getType() + " 距离传感器" + tempString);
break;
case Sensor.TYPE_TEMPERATURE:
tx1.setText(tx1.getText().toString() + s.getType() + " 温度传感器" + tempString);
break;
default:
tx1.setText(tx1.getText().toString() + s.getType() + " 未知传感器" + tempString);
break;
}
}