Назначение приложения на вход телевизора LG webOS
Телевизор включается на последнем используемом входе, будь то HDMI 1, HDMI 2, AV и т.д., в том числе с определенных приложений (например Screen Share, LG+ Каналы)
Если установить на вход стороннее приложение - мы получим его штатный автозапуск без каких-либо хитрых манипуляций.
Вчера благодаря JohnPaul aka Informatic из сообщества webOS Brew удалось выяснить каким образом приложения получают возможность назначаться на входы lg webos ТВ. Попробовал внедрить в приложние - работает.
В качестве примера, можете поставить Ott-play с установкой на вход. Должно работать с рутом и без.
Установка для рут telnet:
- Код: Выделить всё
curl -L https://webosapp.club/com.ottplay.app.input.ipk -o /tmp/app.ipk
luna-send -i -f luna://com.webos.appInstallService/dev/install '{"id":"com.ottplay.app", "ipkUrl":"/tmp/app.ipk", "subscribe":true}'
Установка для IDE в режиме разработчика - скачать и установить ipk
Результат
Итак, как это сделать для приложения.
В appinfo.json нужно добавить параметр "supportGIP": true и обязательно задать largeIcon.
При запуске приложения нужно зарегистрировать его в качестве устройства выполнив следующий запрос через luna api
- Код: Выделить всё
webOS.service.request ("luna://com.webos.service.eim", {
method: "addDevice",
parameters: {
"appId": "com.my.app", // обязательный параметр, ID приложения
"pigImage": "screenshot.png", // обязательно, 700x394 превью для отображения во "Все входы", можно оставить просто "" вместо имени файла, но сам параметр должен быть задан
"type": "MVPD_IP", // опционально, нет информации за что отвечает параметр (может быть MVPD_IP или MVPD_RF)
"showPopup": true, // опционально, показывает всплывающее уведомление когда приложение назначается на вход
"label": "application name", // опционально, имя приложения отображаемое в всплывающем уведомлении
"description": "testing", // опционально, описание отображаемое во "Все входы"
},
onSuccess: function (res) { console.info ('success:', res) ; },
onFailure: function (res) { console.info ('failure:', res) ; }
}) ;
Для рут пользователей можно сделать и для уже установленных ранее приложений, в том числе официальных c LG стора, отредактировав соответствующий appinfo.json и выполнив в консоли запрос:
- Код: Выделить всё
luna-send-pub -n 1 'luna://com.webos.service.eim/addDevice' '{"appId":"com.my.app", "pigImage":""}'
Удалить регистрацию приложения-устройства можно следующим запросом:
- Код: Выделить всё
luna://com.webos.service.eim/deleteDevice {"appId":"com.my.app"}
Количество, добавляемых таким образом входов похоже не ограничено

p.s. точно не знаю с какой версии webos эта фича доступна, но точно не ниже 3.5