Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A way to get the CPU temperature from an android device by using the sys/class/thermal/temp command
public float getCpuTemp() {
Process p;
try {
p = Runtime.getRuntime().exec("cat sys/class/thermal/thermal_zone0/temp");
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = reader.readLine();
float temp = Float.parseFloat(line) / 1000.0f;
return temp;
} catch (Exception e) {
e.printStackTrace();
return 0.0f;
}
}
@farble1670

This comment has been minimized.

Copy link

@farble1670 farble1670 commented Jul 30, 2018

On modern devices selinux is going to prevent you from accessing this node. Also, how the thermal zones map to actual hardware components depends on the CPU. On one device this might be the CPU diode but on another it could be the battery (or invalid).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment