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]);