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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM