传感器类型TYPE_TEMPERATURE已被弃用[自Android 2.3起]可能提供了有关CPU温度的信息。 现在我们有传感器类型TYPE_AMBIENT_TEMPERATURE,它将为我们提供室温(我没有使用,而且不是所有设备和/或Android版本都支持它)
我查了几个测量CPU温度的应用程序。可能他们正在阅读系统文件。我尝试定位,在某些设备中,我能够在以下路径中找到它:
sys/devices/virtual/thermal/thermal_zone0/temp
结构位因供应商而异。也是计量单位。精细! 但在许多设备中,我根本无法找到任何此类文件。在相同的设备中,这些应用程我想知道,怎么样!
我们如何测量Android中的CPU温度?
答案 0 :(得分:5)
我使用了以下路径:
sys/class/hwmon/hwmonX/temp1_input
适用于大多数手机
答案 1 :(得分:2)
弃用不等于删除!如果您发现设备仍然提供不推荐使用的传感器类型,请继续使用它。
弃用旧传感器名称的部分原因是,在看到温度传感器时,公众期望温度是环境空气的温度。然而,在许多情况下,传感器是CPU的一部分,因此它最终主要反映了CPU的温度。
通过添加明确表示气温的新(可选)传感器类型,可以更好地管理这种期望:
答案 2 :(得分:0)
Xamarin.Android sample is here-这就像循环遍历预定义的文件路径列表(在我的情况下为23)并从第一个文件中读取一行(打开时不会失败)(然后将字符串转换为数字,将其缩放到度)。
在以下设备上进行了验证:
不起作用:
上下文
诸如CPU-Z之类的程序具有内部路径列表,可以为包含传感器/读数名称(通常称为“类型”或“名称”)和实际值(通常称为“ temp”)的文件进行探测。 。例如。在/sys/devices/virtual/thermal/thermal_zone0
下的用户可能会从type
文件中读取“ cpu-0-0-user”值,而从temp
文件中读取“ 32100”值。
单个设备上有多个文件,它们具有不同的传感器名称。一个人可能会根据传感器的名称猜测它是否与CPU相关(名称中包含CPU或SoC或其他名称)。准确地说,没有“ CPU温度”值这样的东西,有很多。如果您不关心具体细节(例如,告诉内核或封装温度之间的差异),则选择一个值应代表CPU的散热情况。
各个设备供应商的传感器名称(以及文件路径)也将有所不同。传感器值可以是数千,也可以不是整数。可以采用多种方式来实现临时读取,这提示了为什么Android中没有用于CPU临时的标准API。
尽管我确实花了很多时间进行谷歌搜索,但我收集的列表并不完整(似乎比CPU-Z内部的列表小)。
如何找到特定设备的正确路径
cd
,ls
和cat
的各种路径(从上述示例中的列表开始),调查内部内容并搜索感兴趣的传感器答案 3 :(得分:0)
”“如果您的应用是集成在device OS中的系统应用,则可以只使用HardwarePropertiesManager。 如果没有,这是您可以阅读以获取临时文件的sysfs路径的列表,
/sys/devices/system/cpu/cpu0/cpufreq/cpu_temp
/sys/devices/system/cpu/cpu0/cpufreq/FakeShmoo_cpu_temp
/sys/class/thermal/thermal_zone0/temp
/sys/class/i2c-adapter/i2c-4/4-004c/temperature
/sys/devices/platform/tegra-i2c.3/i2c-4/4-004c/temperature
/sys/devices/platform/omap/omap_temp_sensor.0/temperature
/sys/devices/platform/tegra_tmon/temp1_input
/sys/kernel/debug/tegra_thermal/temp_tj
/sys/devices/platform/s5p-tmu/temperature
/sys/class/thermal/thermal_zone1/temp
/sys/class/hwmon/hwmon0/device/temp1_input
/sys/devices/virtual/thermal/thermal_zone1/temp
/sys/devices/virtual/thermal/thermal_zone0/temp
/sys/class/thermal/thermal_zone3/temp
/sys/class/thermal/thermal_zone4/temp
/sys/class/hwmon/hwmonX/temp1_input
/sys/devices/platform/s5p-tmu/curr_temp"")
您可以了解有关如何读取系统文件here的更多信息。”