Remote Device Management on Android OS
Описание ситуации
очередным этапом развития платформы SmartPlayer является появление функциональности удалённого управления устройством на Android OS. Функционал позволяет управлять устройством не напрямую и управлять отображением контента.
Предварительные настройки
Для того чтобы использовать функциональность удалённого управления на устройстве пользователю переходит в категорию настроек «Удаленное управление». В этой категории найти одноименный параметр с переключателями и выбрать «Включить».

Принцип действия
Для того чтобы пользователь смог воспользоваться данной функциональностью, ему необходимо авторизоваться в личном кабинете SmartPlayer. Следующим шагом пользователю необходимо перейти в раздел "Устройства" личного кабинета и найти нужное ему устройство.

Кликнув на это устройство, пользователю откроется тулбар (данный тулбар будет расположен справа). В этом тулбаре необходимо найти строку "Управление устройством".

После нажатия на строку "Управление устройством" пользователю откроется окно, в котором будет отображён экран устройства и виртуальный пульт управления.

С помощью виртуального пульта пользователь сможет взаимодействовать с устройством и совершать нужные ему действия.
Виртуальный пульт
На виртуальном пульте управления будут доступны различные кнопки, которые будут влиять на возможности управления устройством. Виртуальный пульт включает в себя следующие кнопки:
- Клавиша "ОК" - отвечает за подтверждение выбранного действия или за проваливание в следующий пункт меню (по аналогии со стрелкой вправо)
- Джойстик на четыре направления (вверх, вниз, влево, вправо) - позволяет двигаться по элементам меню устройства. В зависимости от необходимости может: скроллить, проваливаться в следующий пункт меню, вернуться на шаг назад
- Кнопка "Назад" - позволяет вернуться на предыдущий пункт меню управления устройством
- Кнопка "Домой" - позволяет полностью открыть/закрыть меню настроек устройства
- Кнопка отключения звука - позволяет выключить звук на устройстве
- Кнопка «+» - позволяет увеличить громкость устройства
- Кнопка «-» - позволяет уменьшить громкость устройства

Управление на устройстве
На устройстве появились иконки управления в правом верхнем углу:
- скрыть все окна — переносит пользователя на экран с трансляцией;
- передача файлов — модальное окно для работы с обменом файлами с устройством;
- терминал — модальное окно с выводом логов о работе устройства;
- файловый менеджер — страница с доступом к файловой системе устройства;
- захват клавиатуры — активирует специальную клавиатуру SmartpLayer для работы с устройством.

Отправка файлов
Специальное модальное окно позволяющее загрузить файлы в память устройства. Кнопка «Отправка файлов» открывает модальное окно, в котором есть следующие параметры и данные:
- окно для загрузки файлов через drag-n-drop (перетаскивание файла);
- пустое поле для загрузки файла по URL-ссылке;
- описание работы функционала;
- описание конечной точки пути загрузки.

При отправке файла виден прогресс его загрузки на устройство.
Терминал
В терминале используются Shell-команды. Одиночные команды в терминале выполняются единоразово. Если команда продолжительная по времени действия (например ping), то информация от этой команды периодически выводится в окне терминала. Терминал в интерфейсе удаленного управления работает как модальное окно и отображает информацию с логами об устройстве. С помощью иконок его можно:
- развернуть на весь экран;
- свернуть;
- закрыть.

Файловый менеджер
Файловый менеджер расположен внутри устройства по определенному пути с названием внешнего хранилища/flash-карты(название можно просмотреть в личном кабинете в информации по устройству и в последствии вставить в путь).

Внутри файлового менеджера пользователь может управлять файловым менеджером. Для этого используются иконки, расположенные в левом верхнем углу экрана:
- создать папку — создает новую директорию в файловом менеджере;
- переход на уровень выше — выходит из текущей папки на уровень предыдущей;
- обновить — обновляет состояние файлового менеджера и его содержимого;
- домой — кнопка выхода на экран удаленного управления.

Данная страница открывается по нажатию кнопки и представляет собой список с файлами и папками, расположенными внутри хранилища устройства.

При работе с элементами файлового менеджера доступен разный набор действий для разных сущностей:
- папки — доступны команды: переименовать, удалить, скачать;

- обычные файлы — доступны команды: переименовать, удалить, скачать, запустить;

- APK-файлы — доступны команды: переименовать, удалить, скачать, запустить, тихая установка (фоновая установка);

- действия при выделении нескольких файлов — доступны команды: удалить, скачать.

Захват клавиатуры
Активация захвата нажатий включает захват действий, то набираемый текст с клавиатуры регистрируется системой и выводится на экран. При активации захвата клавиатура меняется с системной (установленной на устройстве по умолчанию) на клавиатуру SmartPlayer. Вернуть системную клавиатуру можно кликнув по иконке глобуса внизу экрана. При отключённом захвате клавиатуры ввести текст в режиме удаленного управления нельзя.
Использование системной клавиатуры доступно, но набор текста усложнён. Каждый символ выбирается кликом мыши. В качестве альтернативного варианта можно копировать и вставлять текст через горячие клавиши.

Ограничения функциональности
Данная функциональность в текущей реализации имеет некоторые ограничения, а именно:
- Только для локальных серверов. Если устройства пингуются друг с другом по своим локальным Ip-адресам, то удаленное управление устройством должно работать корректно.
Тонкости и нюансы работы функционала
В данном разделе будут описаны тонкости и нюансы работы функционала, которые позволят лучше разобраться в принципах его действия:
- Зажатая клавиша на пульте «Домой» отключает режим «Киоска»;
- Поддержка звука начинается с Android 10 и выше;
- На данный момент пользователю доступен функционал для удалённого управления, даже если устройство имеет статус в личном кабинете "off-line" (то есть оно не должно подсвечиваться зелёным).
- Сам процесс работы удаленного управления отчасти обособлен от работы клиентского приложения, что имеет некоторые преимущества. Например: если клиентское приложение крашнулось или не запускается, то с помощью удаленного управления можно взаимодействовать с устройством - поменять настройки в системе устройства или установить новый билд клиентского приложения для восстановления работоспособности устройства.
- Если трансляция не запустилась на устройстве, то через удаленное управление можно взаимодействовать с файловым менеджером устройства.
- Для корректной работы данной функциональности пользователю необходимо иметь root-права на устройстве или же должна иметься подпись прошивки производителя устройства. Главное, чтобы была настроена сеть и доступ до микросервиса удалённого управления на сервере.
- На некоторых устройствах виртуальные клавиши «+» и «-» могут не функционировать. Это связано с аппаратными ограничениями устройства. Изменить громкость можно будет в личном кабинете через трансляцию или через физический пульт от приставки.
- При быстром многократном нажатии одной кнопки на пульте устройство запоминает все сделанные нажатия, но отображает их с задержкой. То есть, если пользователь пять раз нажмет стрелку вверх, то приставка сделает эти пять шагов, но с задержкой в одну секунду после каждого шага. Данный принцип является ограничением Android OS.
- Некоторые исполняемые файлы, расположенные внутри хранилища можно запустить.
Видеоинструкция
Удаленное управление устройством на Android OS
Итоговый результат
Пользователь понимает и умеет использовать удаленное управление на устройствах под управлением Android OS.
Демонстрационное видео
https://education_tutorial.hb.ru-msk.vkcs.cloud/Screencast%20from%2014.06.2024%2012%3A28%3A37.webm