Запускаем свою игру на Android TV

Device Lab от Google раздает всякие интересные устройства для тестирования, чем было грех не воспользоваться. Захотелось изучить работу c Android TV. Мной была подана заявка на тестирование Android TV. В качестве подопытного приложения — головоломка, математическая игра Mathable для Android. Описание условий получения устройств здесь. Заявка была одобрена, съездил в офис хабра забрал тестовое устройство — Forge TV от Razer.

dba814d23737463e91fccbe0c111da28.jpg
Статья автора Баркалов Дмитрий, в рамках конкурса «Device Lab от Google».

Доработка приложения для поддержки Android TV


Надо объявить activity которая будет запускаться первой на TV. Она должна быть в портретной ориентации без статус бара и тулбара. У меня как раз такая и есть, поэтому добавляем intent filter в существующую.

    
        
        
    
    
        
        
    


Чтобы приложение появилось в соответствующем разделе добавляем android: isGame=«true»


После этого можно запускать приложения для теста. Но надо учесть что на TV нет сенсорного экрана и надо обходиться одним пультом.

Выбор контрола происходит перемещением фокуса. Поэтому, например, для кнопок добавил в селектор бекграунда состояние focused.


    
    
    
    


Для управления навигацией надо указать какие элементы могут иметь фокус и порядок перемещения фокуса. Как это делать написано здесь.

Подключение Android-TV к ноутбуку для установки и запуска приложения


Приложение работает на эмуляторе, хочется запустить приложение на реальном устройстве. Конечно, можно по сети перекинуть apk или в play store опубликовать бету. Но это долго, и вдруг нужна будет отладка, поэтому только проводок, только хардкор!

На TV имеется USB порт, который может работать как хост и как устройство. По умолчанию режим отладки выключен, и порт работает к режиме хоста. Для возможности отладки надо поменять эти настройки. Как это сделать подробно написано в />инструкции от производителя.

Есть одна проблемка, не нашлось USB кабеля A — A, т.е. папа — папа, пришлось спаять из двух имеющихся хвостов. Если кому потребуется такое делать, то соединять 1 к 1 все провода.

370ea798ab6640b3b67d6a2319047f4a.jpg

После подключения устройство появилось в списке устройств доступных для отладки.

ad7cacaf48b04ee7b0bbd6af6f2aa565.png

Запускаем!


В качестве телевизора к устройству подключен монитор через переходник HDMI-VGA. Жмем Run! Приложение запустилось. Никаких особо отличий от эмулятора нет. Теперь можно пользоваться пультом для навигации по приложению. Также можно использовать для управления приложение Android TV. Что я и сделал на своем Nexus.

6e599b10da3d42f9ba9d59d51c50d2ba.jpg

Мобильное приложение пульта может подключаться к Android TV по Wi-Fi или Bluetooth.

6f7f457671da4f2994c9700018dd5e6d.png

Приложение на Android TV.

739693a9f2344dc297c5fd67a4c678af.png

Можно публиковать приложение в Android Play Store! В итоге, оказалось что адаптировать приложение для Android TV совсем не сложно. Достаточно добавить нужную информацию в манифест приложения и обрабатывать перемещение фокуса между контролами. Конечно, добавить для них соответствующий селектор.

GridView и RecyclerView умеют предсказуемо работать с перемещением фокуса. Если бы этого оказалось недостаточно, то можно обрабатывать перемещение фокуса самому в документации есть пример, как это делать.

Полезная информация по созданию приложений для TV здесь.

Комментарии (0)

© Habrahabr.ru