Обнаруживать перегрев в Google Glass программно
Как и многие другие, я сталкиваюсь с проблемой перегрева стекла Google. У меня вопрос, как это обнаружить в приложении?
Я просматривал журнал, но ничего, что указывало бы на ожидание сообщения на экране.
1 ответ
У Google Glass есть (как минимум) два датчика температуры.
Один для батареи, а другой для платы процессора.
Вы можете прочитать их как обычный файл.
аккумулятор/sys/devices/platform/omap_i2c.1/i2c-1/1-0055/power_supply/bq27520-0/temp
Плата процессора/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();
}
интерпретация
Значения, которые вы получите из этих файлов, находятся в разных единицах.
Температура платы ЦП должна быть разделена на 1000, чтобы получить температуру в °C.
Температура батареи должна быть разделена на 10, чтобы получить температуру в °C.
Logcat
LogCat также дает вам температуру каждую минуту или около того в одной строке журнала.
Вы могли бы даже разобрать это:
I/UserEventService(568): [GlassUserEventPerformanceStats ... battery_temperature_milli_centigrade: 34000 board_temperature_milli_centigrade: 44000 ]
Ценности
Исходя из моего опыта, значения платы ЦП могут быть от 25°C до 70°C.
Если температура превысит 70°C, ваше приложение или любое другое активное приложение, вероятно, будет уничтожено системой, и вы увидите сообщение "Стекло должно остыть, чтобы оно работало гладко".