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

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

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

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

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

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

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

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

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

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

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

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

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

- 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