以编程方式检测 Google Glass 中的过热

Detect overheating in Google Glass programmaticaly

和其他许多人一样,我面临 google 玻璃过热问题。我的问题是如何在应用程序中检测到它?

我正在查看日志,但没有任何迹象表明它需要屏幕上的消息。

Google 玻璃有(至少)两个温度探测器。
一个用于电池,另一个用于CPU板
您可以将它们作为常规文件阅读。

电池
/sys/devices/platform/omap_i2c.1/i2c-1/1-0055/power_supply/bq27520-0/temp

CPU板
/sys/devices/platform/notle_pcb_sensor.0/temperature

但请记住,随着 Google Glass 的新版本发布,这些文件可能会更改位置。

代码(简化版)

private String readTemperature(String path) throws IOException {
    return new BufferedReader(new InputStreamReader(new FileInputStream(new File(path)))).readLine();
}

解读

您将从这些文件中获得的值采用不同的单位。
CPU 电路板温度必须除以 1000 才能得到以 °C 为单位的温度。
电池温度必须除以 10 才能得到以 °C 为单位的温度。

Logcat

logcat 还会在一行日志中每隔一分钟左右为您提供一次温度。
你甚至可以解析它:

I/UserEventService(568): [GlassUserEventPerformanceStats ... battery_temperature_milli_centigrade: 34000 board_temperature_milli_centigrade: 44000 ]

根据我的经验,CPU 板的值可以从 25°C 到 70°C。
如果温度超过 70°C,您的应用或任何活动的应用可能会被系统终止,您会看到消息 "Glass must cool down to run smoothly"。