如何以编程方式获取 Android 中的当前热值?
How to get current Thermal values in Android Programatically?
我正在尝试以编程方式获取设备的热值。我可以在 adb 中执行此操作,但无法以编程方式执行此操作。我如何遍历目录“thermal”中的每个目录以获取特定值。我的部分代码如下:
Process p=Runtime.getRuntime().exec("cd sys/class/thermal/");
您无法通过应用程序访问 /sys/class/thermal/
,因为执行该操作的用户(例如 u0_aXYZ
)与(root)相比没有足够的权限来执行此操作 adb shell
.
你可以这样做:
adb shell
run-as your-app-package-name
从现在开始,您可以浏览设备文件系统并查看您的应用程序可以访问的文件夹。
如果你想继续,你唯一的选择是拥有一个 root 设备并构建一个具有 root 权限的应用程序。
现在我发现可以编程方式执行此操作。我使用 for 循环来查找值。访问详细答案
for(int i=0;i<29;i++){
float temp;
Process process = Runtime.getRuntime().exec("cat sys/class/thermal/thermal_zone" + i + "/temp");
process.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = reader.readLine();
if (line != null) {
temp = Float.parseFloat(line);
}
reader.close();
process.destroy();
}
我正在尝试以编程方式获取设备的热值。我可以在 adb 中执行此操作,但无法以编程方式执行此操作。我如何遍历目录“thermal”中的每个目录以获取特定值。我的部分代码如下:
Process p=Runtime.getRuntime().exec("cd sys/class/thermal/");
您无法通过应用程序访问 /sys/class/thermal/
,因为执行该操作的用户(例如 u0_aXYZ
)与(root)相比没有足够的权限来执行此操作 adb shell
.
你可以这样做:
adb shell
run-as your-app-package-name
从现在开始,您可以浏览设备文件系统并查看您的应用程序可以访问的文件夹。
如果你想继续,你唯一的选择是拥有一个 root 设备并构建一个具有 root 权限的应用程序。
现在我发现可以编程方式执行此操作。我使用 for 循环来查找值。访问详细答案
for(int i=0;i<29;i++){
float temp;
Process process = Runtime.getRuntime().exec("cat sys/class/thermal/thermal_zone" + i + "/temp");
process.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = reader.readLine();
if (line != null) {
temp = Float.parseFloat(line);
}
reader.close();
process.destroy();
}