Обнаруживать перегрев в 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, ваше приложение или любое другое активное приложение, вероятно, будет уничтожено системой, и вы увидите сообщение "Стекло должно остыть, чтобы оно работало гладко".

Другие вопросы по тегам