58

InfoPanel для Android TV: информационные экраны без облака

InfoPanel появился не как учебный проект. Мне понадобилось развернуть несколько информационных экранов на горном предприятии в Архангельской области: объявления, графики, инструкции и видео должны были включаться сами, без пульта и ежедневной настройки. Покупать отдельные медиаплееры и привязывать экраны к облачному сервису не хотелось, поэтому я написал своё приложение для Android TV.

Первую рабочую установку я собрал на обычных телевизорах Xiaomi и TCL. После подачи питания телевизор загружается, InfoPanel запускается автоматически и открывает нужный контент на весь экран.

Что такое InfoPanel

InfoPanel — программа для информационных экранов на Android TV. Она воспроизводит изображения и видео, открывает веб-страницы и сетевые потоки, а также забирает материалы из общей папки по SMB.

Я старался сделать управление таким, чтобы для замены объявления не требовался отдельный оператор. Сотрудник кладёт новый файл в сетевую папку, а приложение обновляет список материалов на экране. В зависимости от задачи можно собрать обычный плейлист или показывать содержимое папки автоматически.

Что уже умеет программа

  • автоматически запускаться после включения телевизора и восстановления питания;
  • работать как домашний экран Android TV и возвращаться после случайного закрытия;
  • показывать изображения, локальные видео, веб-страницы и сетевые потоки;
  • загружать контент по HTTP, HTTPS и из общей папки SMB;
  • задавать время показа, расписание и громкость для отдельных материалов;
  • кэшировать сетевые файлы, чтобы экран не оставался пустым при кратком обрыве связи;
  • управляться через встроенную веб-панель с компьютера или телефона;
  • объединять несколько экранов и управлять ими с одного головного устройства;
  • передавать голосовое объявление с микрофона на подключённые экраны;
  • вести журнал событий для диагностики.
Панель управления InfoPanel с настройками экранов и SMB
Главная часть веб-панели: голосовое объявление, несколько экранов, SMB и настройки звука. Служебные адреса и токен закрыты.

Сетевая папка вместо сложной панели

Самый удобный для нашей эксплуатации вариант — обычная общая папка. В неё можно положить фотографию, памятку или ролик, не заходя в настройки каждого телевизора. InfoPanel проверяет содержимое папки и формирует из файлов плейлист.

Параметры показа можно указать в имени файла: продолжительность, временное окно или повтор. Это пригодилось там, где объявления готовят разные сотрудники, а доступа к настройкам телевизора у них нет.

Плейлист и расписание файлов в InfoPanel
Для каждого изображения и ролика задаются продолжительность, масштаб, время показа и зацикливание.

Как я разворачивал InfoPanel на Android TV

В первой установке участвовали Xiaomi MiTV-MOOQ1 и TCL Smart TV G07 на Android 11. Сначала я включил режим разработчика и отладку по сети, затем через ADB убрал лишние системные экраны и назначил InfoPanel домашним приложением.

Общего списка команд для всех телевизоров здесь нет намеренно. Даже на одной версии Android производители используют разные пакеты и по-разному восстанавливают штатный лаунчер. На Xiaomi после перезагрузки мог снова появиться стандартный главный экран, а TCL пытался вернуть мастер первоначальной настройки. Перед отключением любого системного пакета я сначала смотрю его имя и проверяю, можно ли вернуть его командой enable.

Для обычного информационного экрана этого достаточно: телевизор получает питание, загружается и сам переходит к показу. Если нужен жёсткий киоск-режим без возможности выйти из приложения, устройство лучше заранее готовить как Device Owner. Обычная замена лаунчера не даёт такой же степени блокировки.

Что получилось в эксплуатации

Главный результат для меня не в том, что Android TV научился показывать ролики. Важно, что экран после отключения электричества возвращается в рабочее состояние без человека с пультом. Контент хранится внутри сети предприятия, а для обычной замены объявления достаточно скопировать файл в папку.

Одновременно выяснилось, что прошивки телевизоров нельзя считать одинаковыми. Поэтому в программе появились контроль запуска, восстановление проигрывателя после длительной работы, локальный кэш и журнал событий. Эти вещи не особенно заметны во время демонстрации, но именно они нужны экрану, который должен работать каждый день.

Что планирую добавить

Сейчас InfoPanel работает с локальными файлами, веб-адресами и сетевыми папками SMB. В следующих версиях я планирую добавить Яндекс Диск и Google Drive как источники контента. Тогда обновлять материалы можно будет через облачную папку, если у телевизора нет доступа к локальной сети.

Это первая публикация в разделе «Проекты». Здесь я буду рассказывать о своих программах, рабочих внедрениях, ошибках и решениях, которые появились не в теории, а во время эксплуатации.