我看到过很多关于如何从 Android 设备获取温度信息的问题/答案——使用这种方法:
int zoneNumber = 0; // Usually 0 or 1
String temperatureFileLocation = "sys/devices/virtual/thermal/thermal_zone" + zoneNumber + "/temp";
File temperatureFile = new File(temperatureFileLocation);
scanner = new Scanner(temperatureFile);
double temperatureC = scanner.nextFloat(); // Degrees C
...
scanner.close(); // finally
我不太确定每个区域的用途(即传感器位于设备的哪个部分),但我刚刚发现还有一个文件描述了类型每个区域 - 例如:
String zoneTypeFileLocation = "sys/devices/virtual/thermal/thermal_zone" + zoneNumber + "/type"; // NB - that's "/type" not "/temp" !
现在,当使用 Scanner
读取每个区域的type 时,我得到的值如下:
mtktswmt
mtktscpu
mtktspmic
mtktspa
mtktsabb
mtktsbattery
tsen_max
sec-fuelguage
谁能解释所有这些区域名称实际上指的是什么位置/组件?
(理想情况下,我想获取设备的 NFC 硬件的温度。)
最佳答案
我想那是手机的硬件热传感器
。它们通常会在移动设备工作时或什至在您执行某些基准测试
结果时提供给定区域的温度。
喜欢
- mtktswmt 是 Wifi 芯片温度区。
- mtktscpu 是 cpu 温度区。
- mtktspmic 是 Multi IO and Regulator Chip 温区。
- mtktspa 是热传感器 MD1
- mtktsabb 是处理器温度区。
- mtktsbattery 是电池温度区。
- tsen_max 是最大温度传感器容量(我不确定)。
- sec-fuelguage 是电量计芯片。
mtkt 前缀只是制造商的名称。在这种情况下是联发科技
那是非常硬核的硬件。这些实际上被 android 手机的制造商使用(我猜)。甚至上面提到的数据也是从 google android 开源项目中搜索的,其中的值是在内核驱动程序中找到的。因此,它是非常硬核的硬件。
要使用实际为您提供所需结果的硬件属性,请尝试 HardwarePropertiesManager
.
希望对您有所帮助。
关于安卓温度区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45824388/