我想以编程方式获得Sensor
的名称。说出环境光传感器的名称。
我怎样才能得到它的名字?
答案 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);