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

Сетевая папка вместо сложной панели
Самый удобный для нашей эксплуатации вариант — обычная общая папка. В неё можно положить фотографию, памятку или ролик, не заходя в настройки каждого телевизора. 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 как источники контента. Тогда обновлять материалы можно будет через облачную папку, если у телевизора нет доступа к локальной сети.
Это первая публикация в разделе «Проекты». Здесь я буду рассказывать о своих программах, рабочих внедрениях, ошибках и решениях, которые появились не в теории, а во время эксплуатации.