我怎样才能获得传感器的名称?

时间:2011-11-14 11:24:18

标签: android sensor

我想以编程方式获得Sensor的名称。说出环境光传感器的名称。

我怎样才能得到它的名字?

3 个答案:

答案 0 :(得分:8)

使用传感器管理器查询(所有或certain types个)可用传感器。然后使用Sensor.getName()获取单个传感器的名称。

SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
List<Sensor> list = sm.getSensorList(Sensor.TYPE_ALL);

for(Sensor s : list) {
    Log.d("SENSORS", s.getName());
}

上面代码段的示例输出:

11-14 12:26:47.549: D/SENSORS(911): BMA150 3-axis Accelerometer
11-14 12:26:47.559: D/SENSORS(911): AK8973 3-axis Magnetic field sensor
11-14 12:26:47.559: D/SENSORS(911): AK8973 Orientation sensor
11-14 12:26:47.559: D/SENSORS(911): CM3602 Proximity sensor
11-14 12:26:47.559: D/SENSORS(911): CM3602 Light sensor
11-14 12:26:47.559: D/SENSORS(911): Gravity Sensor
11-14 12:26:47.559: D/SENSORS(911): Linear Acceleration Sensor
11-14 12:26:47.559: D/SENSORS(911): Rotation Vector Sensor

答案 1 :(得分:3)

首先,您必须获取SensorManager的实例,然后从管理器获取所需的服务实例。

String sm = Context.SENSOR_SERVICE;
SensorManager sensorManager = (SensorManager) getSystemService(sm);

/*
 * We get the light sensor in this example.
 */
Sensor someSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

/*
 * Always perform a null check on sensors since your device
 * may not have that sensor.
 */
if (null != someSensor) {
    String sensorName = someSensor.getName();
}

您可以使用传感器的getName()方法获取名称。

答案 2 :(得分:0)

使用getSensorList(Sensor.TYPE_ALL),您可以获取设备中的所有传感器。

SensorManager sensorManager
    = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
sensorManager.getSensorList(Sensor.TYPE_ALL);