我希望以编程方式获取
我该如何获取它的名称?
传感器
的名称。比如环境光传感器的名称。我该如何获取它的名称?
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
getDefaultSensor()
在这里。已经为你点赞了。当我发布问题时,我不知道这是一个自我记录的问题。建议在问题中写一句简短的话强调这一点,并在以后编辑掉它。这样对于每个人都是明显的。我仍然会保留这个示例输出,因为它仍然相关,而且人们可能会因为两个问题而在谷歌上找到这里。 - user658042首先,您需要获取一个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()
方法获取名称。使用getSensorList(Sensor.TYPE_ALL)
,您可以获取设备中的所有传感器。
SensorManager sensorManager
= (SensorManager)getSystemService(Context.SENSOR_SERVICE);
sensorManager.getSensorList(Sensor.TYPE_ALL);