我正在尝试访问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之前我需要做任何事情吗?
答案 0 :(得分:1)
并非每个传感器都存在于每个设备上。您的设备可能根本没有温度传感器。这是最可能不存在的数据之一,因为数据通常被误解并且不太有用。
答案 1 :(得分:1)
传感器AMBIENT_TEMPERATURE仅存在于Galaxy S4和Galaxy Note 3中。该传感器应该返回环境温度,而不是CPU温度。您的设备没有环境温度传感器。您需要寻找一种从CPU或设备电池中的内部传感器读取数据的方法。
也许这就是您想要的:
how get Current CPU Temperature programmatically in all Android Versions?