Android 9.0 获取CPU温度方法

HardwarePropertiesManager类提供访问设备硬件状态的机制:CPU,GPU和电池温度,每个内核的CPU使用率,风扇速度等。

API 说明:https://www.apiref.com/android-zh/android/os/HardwarePropertiesManager.html

source code:  http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/java/android/os/HardwarePropertiesManager.java

常量:

int     DEVICE_TEMPERATURE_BATTERY
电池温度以摄氏度表示。

int     DEVICE_TEMPERATURE_CPU
CPU的温度,以摄氏度表示。

int     DEVICE_TEMPERATURE_GPU
GPU的温度,以摄氏度表示。

int     DEVICE_TEMPERATURE_SKIN
设备皮肤温度,以摄氏度表示。

int     TEMPERATURE_CURRENT
获取当前温度。
int     TEMPERATURE_SHUTDOWN
获取关机温度阈值。

int     TEMPERATURE_THROTTLING
获取节流温度阈值。

int     TEMPERATURE_THROTTLING_BELOW_VR_MIN
获得节流温度阈值,高于此温度阈值将不会满足VR模式的最低时钟频率。

float     UNDEFINED_TEMPERATURE
未定义的温度常数。

方法:

 CpuUsageInfo[]     getCpuUsages()
为每个核心返回一组CPU使用率信息。

float[]     getDeviceTemperatures(int type, int source)
以摄氏度返回设备温度数组。

float[]     getFanSpeeds()
以RPM为单位返回风扇速度数组。

使用实例:

import android.os.HardwarePropertiesManager;

private HardwarePropertiesManager mHardwarePropertiesManager;

mHardwarePropertiesManager = (HardwarePropertiesManager)context.getSystemService(Context.HARDWARE_PROPERTIES_SERVICE);
        
float[] temps = mHardwarePropertiesManager.getDeviceTemperatures(
                    HardwarePropertiesManager.DEVICE_TEMPERATURE_CPU,
                    HardwarePropertiesManager.TEMPERATURE_CURRENT);
                    
for(int i=0; i<temps.length; i++)
    Log.d(TAG, "CPU Temperatures="+temps[i]);
心有猛虎,细嗅蔷薇,生活就该无惧无悔..... PS:文章系作者工作学习总结,受作者知识水平的限制,文章难免有错误之处,仅供参考,转载请注明出处:http://www.cnblogs.com/roger-yu/
原文地址:https://www.cnblogs.com/roger-yu/p/15005854.html