我知道以某种方式可以获得CPU的温度,因为我下载了一个在无根设备中执行此操作的应用程序。怎么做?
编辑:该应用程序称为A1 CPU工具。我花了几天时间寻找答案。
edit2:这是我试过的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
Sensor TempSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
mSensorManager.registerListener(temperatureSensor, TempSensor, SensorManager.SENSOR_DELAY_FASTEST);
}
private SensorEventListener temperatureSensor = new SensorEventListener(){
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
float temp = event.values[0];
Log.i("sensor", "sensor temp = " + temp);
}
};
答案 0 :(得分:7)
如果设备没有通过任何一个温度传感器暴露CPU温度(也就是说,要求使用TEMPERATURE
或AMBIENT_TEMPERATURE
类型的传感器,则不会产生任何影响)能够以标准方式阅读它。当然,如果它没有广泛分发,那么就不会以非标准方式进行,这可能适合您的应用。
如果您知道要查看的位置,可以在/sys/devices/platform
中读取设备文件。如果您将adb shell
和cd
投放到该文件夹中,那么您find | grep temp
可以很好地为您提供代表温度传感器的文件。
这些文件也不仅适用于CPU - 例如,可以通过阅读/sys/devices/platform/omap_i2c.1/i2c-1/1-0055/power_supply/bq27520-0/temp
来访问Google Glass的电池温度传感器。
从这条路看,很清楚为什么你不应该这样做并期望它能够在所有设备上运行 - 文件的路径和格式因设备而异。然而,在紧要关头,这是一种快速而肮脏的方式来完成工作。
答案 1 :(得分:3)
http://repo.xposed.info/module/org.narcotek.cputemp
仔细阅读本文,我认为它可能会对您有所帮助。
我正在使用名为酷工具的应用;令人惊讶的是它有很多功能......然后我启用了自定义标签1并按照链接所说的内容进行操作。
我将路径更改为/sys/class/thermal/thermal_zone0/temp
并且有这个选项,我没有改变refer:(/d+)/d{3}
还有替换模式:1 $
希望这有助于使用很酷的工具,如果你需要!
答案 2 :(得分:3)
从以下路径中读取文件以从不同设备获取cpu温度详细信息,其中一个路径将返回所需文件。
"/sys/devices/system/cpu/cpu0/cpufreq/cpu_temp"
"/sys/devices/system/cpu/cpu0/cpufreq/FakeShmoo_cpu_temp"
"/sys/class/thermal/thermal_zone1/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_zone0/temp"
"/sys/devices/virtual/thermal/thermal_zone0/temp"
"/sys/class/hwmon/hwmon0/device/temp1_input"
"/sys/devices/virtual/thermal/thermal_zone1/temp"
"/sys/devices/platform/s5p-tmu/curr_temp"
答案 3 :(得分:0)
如果是电池温度和CPU温度,即使存在温度传感器。
大多数手机仅包含不推荐使用的CPU温度测量传感器Sensor.TYPE_TEMPERATURE
您应该使用传感器.TYPE_AMBIENT_TEMPERATURE
,我认为很多手机都没有。
有关详细信息,请参阅此
http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_AMBIENT_TEMPERATURE
答案 4 :(得分:0)
以下是2019年12月在生产中用于查找CPU温度的当前路径集。有许多不同的途径,因为不同的OEM将温度放置在不同的地方。
除了上面列出的位置之外,还使用了这三个位置:
/sys/htc/cpu_temp
/sys/devices/platform/tegra-i2c.3/i2c-4/4-004c/ext_temperature
/sys/devices/platform/tegra-tsensor/tsensor_temperature
先前已列为答案的答案仍然成立:
/sys/devices/system/cpu/cpu0/cpufreq/cpu_temp
/sys/devices/system/cpu/cpu0/cpufreq/FakeShmoo_cpu_temp
/sys/class/thermal/thermal_zone1/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_zone0/temp
/sys/devices/virtual/thermal/thermal_zone0/temp
/sys/class/hwmon/hwmon0/device/temp1_input
/sys/devices/virtual/thermal/thermal_zone1/temp
/sys/devices/platform/s5p-tmu/curr_temp