我如何获得CPU温度?

 大苏打的苏打水 发布于 2023-02-08 11:21

我知道以某种方式可以获得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);
    }
};

小智.. 7

如果设备没有通过温度传感器暴露CPU温度(即,要求使用类型的传感器TEMPERATUREAMBIENT_TEMPERATURE什么都不给你),您将无法以标准方式读取它.当然,如果它没有广泛分发,那么就不会以非标准方式进行,这可能适合您的应用.

/sys/devices/platform如果您知道要查看的位置,则可以读取设备文件.如果您运行adb shellcd进入该文件夹,您就有很好的机会find | grep temp为您提供代表温度传感器的文件.

这些文件也不仅仅适用于CPU - 例如,我可以通过阅读来访问Google Glass的电池温度传感器/sys/devices/platform/omap_i2c.1/i2c-1/1-0055/power_supply/bq27520-0/temp.

看看这条路径,很清楚为什么你不应该这样做并期望它能在所有设备上运行 - 文件的路径和格式因设备而异.然而,在紧要关头,这是一种快速而肮脏的方式来完成工作.

2 个回答
  • 如果设备没有通过温度传感器暴露CPU温度(即,要求使用类型的传感器TEMPERATUREAMBIENT_TEMPERATURE什么都不给你),您将无法以标准方式读取它.当然,如果它没有广泛分发,那么就不会以非标准方式进行,这可能适合您的应用.

    /sys/devices/platform如果您知道要查看的位置,则可以读取设备文件.如果您运行adb shellcd进入该文件夹,您就有很好的机会find | grep temp为您提供代表温度传感器的文件.

    这些文件也不仅仅适用于CPU - 例如,我可以通过阅读来访问Google Glass的电池温度传感器/sys/devices/platform/omap_i2c.1/i2c-1/1-0055/power_supply/bq27520-0/temp.

    看看这条路径,很清楚为什么你不应该这样做并期望它能在所有设备上运行 - 文件的路径和格式因设备而异.然而,在紧要关头,这是一种快速而肮脏的方式来完成工作.

    2023-02-08 11:22 回答
  • 从以下路径读取文件(由于不同的设备而有所不同),以从不同的设备获取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"    
    

    2023-02-08 11:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有