如何通过代码监控Samsung Galaxy S8的温度?

时间:2019-05-21 17:03:42

标签: android android-sensors temperature samsung-galaxy android-hardware

我正在尝试访问Android设备的CPU温度,特别是三星Galaxy S8(与GearVR配合使用)以便能够在应用程序界面中显示它。除非我在代码中做错了什么,否则TEMPERATURE和AMBIENT_TEMPERATURE传感器似乎不可用?

我尝试从传感器管理器中获取默认的AMBIENT_TEMPERATURE和TEMPERATURE传感器,但两者均返回null。

sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
ambTemperatureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
if(ambTemperatureSensor == null)
        message += "No ambient temperature sensor...\n";
temperatureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);
if(temperatureSensor == null)
        message += "No temperature sensor...\n";

我完全希望AMBIENT_TEMPERATURE传感器出现并允许我访问CPU温度,但是当这种方法不起作用时,我认为也许可以使用不推荐使用的TEMPERATURE传感器。在调用getDefaultSensor之前我需要做任何事情吗?

2 个答案:

答案 0 :(得分:1)

并非每个传感器都存在于每个设备上。您的设备可能根本没有温度传感器。这是最可能不存在的数据之一,因为数据通常被误解并且不太有用。

答案 1 :(得分:1)

传感器AMBIENT_TEMPERATURE仅存在于Galaxy S4和Galaxy Note 3中。该传感器应该返回环境温度,而不是CPU温度。您的设备没有环境温度传感器。您需要寻找一种从CPU或设备电池中的内部传感器读取数据的方法。

也许这就是您想要的:

how get Current CPU Temperature programmatically in all Android Versions?