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; } }