gpt4 book ai didi

java - 如何在所有 Android 版本中以编程方式获取当前 CPU 温度?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:52 25 4
gpt4 key购买 nike

我正在使用此代码获取当前 CPU 温度:

并看到了it也是

 private float getCurrentCPUTemperature() {
String file = readFile("/sys/devices/virtual/thermal/thermal_zone0/temp", '\n');
if (file != null) {
return Long.parseLong(file);
} else {
return Long.parseLong(batteryTemp + " " + (char) 0x00B0 + "C");

}
}


private byte[] mBuffer = new byte[4096];

@SuppressLint("NewApi")
private String readFile(String file, char endChar) {
// Permit disk reads here, as /proc/meminfo isn't really "on
// disk" and should be fast. TODO: make BlockGuard ignore
// /proc/ and /sys/ files perhaps?
StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskReads();
FileInputStream is = null;
try {
is = new FileInputStream(file);
int len = is.read(mBuffer);
is.close();

if (len > 0) {
int i;
for (i = 0; i < len; i++) {
if (mBuffer[i] == endChar) {
break;
}
}
return new String(mBuffer, 0, i);
}
} catch (java.io.FileNotFoundException e) {
} catch (java.io.IOException e) {
} finally {
if (is != null) {
try {
is.close();
} catch (java.io.IOException e) {
}
}
StrictMode.setThreadPolicy(savedPolicy);
}
return null;
}

并像这样使用它:

float cpu_temp = getCurrentCPUTemperature();
txtCpuTemp.setText(cpu_temp + " " + (char) 0x00B0 + "C");

它的工作就像一个魅力,但适用于 Android M 及以下版本。对于 Android N 及更高版本 (7,8,9) 不工作并像这样显示温度:

Android 6 及以下 (6,5,4) 为 57.0

57000.0 在 android 7 及以上 (7,8,9)

我也试试这段代码:

 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
txtCpuTemp.setText((cpu_temp / 1000) + " " + (char) 0x00B0 + "C");
}

但不工作:(

如何在所有 android 版本中获取 Temp?

更新:

我更改了喜欢它的代码并在某些设备上工作除了三星:

float cpu_temp = getCurrentCPUTemperature();
txtCpuTemp.setText(cpu_temp + " " + (char) 0x00B0 + "C");

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
txtCpuTemp.setText(cpu_temp / 1000 + " " + (char) 0x00B0 + "C");
}

最佳答案

在较新的 API 上将值除以 1000:

float cpu_temp = getCurrentCPUTemperature();
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
cpu_temp = cpu_temp / 1000;
}

我只是想知道 batteryTemp 的来源以及它与 CPU 的关系。

关于java - 如何在所有 Android 版本中以编程方式获取当前 CPU 温度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55441013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com