Android设备的Thermal API可以用于获取设备的温度数据。但是,在某些情况下,该API会不正确地返回零值。解决此问题的方法是使用系统服务来获取温度数据而不是使用Thermal API。以下是示例代码:
//获取系统服务 SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
//使用SENSOR_TYPE_AMBIENT_TEMPERATURE获取温度数据 Sensor temperatureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE); sensorManager.registerListener(this, temperatureSensor, SensorManager.SENSOR_DELAY_NORMAL);
@Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_AMBIENT_TEMPERATURE) { float temperature = event.values[0]; //在这里对温度数据进行处理 } }
通过使用系统服务获取温度数据,可以避免Thermal API返回零值的问题。