Это API, который LG публикует для использования со своими Телевизор для мобильной разработки. После подключения остается неясная документация.
Пока я могу управлять большинством вещей на телевизоре с помощью API, но не могу отправить текст в панель поиска YouTube. Следующая реализация работает, если есть панель поиска, на которую нужно щелкнуть, чтобы получить фокус клавиатуры, но это проблема с панелью поиска YouTube. Нет интерактивной области, на которой можно было бы захватить фокус.
Код: Выделить всё
webOSService?.textInputControl?.subscribeTextInputStatus(object :
TextInputStatusListener {
override fun onError(error: ServiceCommandError?) {
}
override fun onSuccess(`object`: TextInputStatusInfo?) {
}
})
Код: Выделить всё
val device = state.connectedDevice
val webOSService = device?.getCapability(WebOSTVService::class.java)
webOSService?.sendText("Hello!")
Подключить SDK com.itgeek25.sampletvremote D webOS Socket [OUT ] : {"type":"request","id":"18","uri":"ssap://com.webos.service.ime/insertText","payload":{"text":"Привет!" ,"replace":0}
2025-01-11 01:49:22.059 19058-19134 Подключить SDK
com.itgeek25.sampletvremote D webOS Socket [IN] :
{"type":"response","id":"18","payload":{"returnValue":true}
Я пытался следить за тем, как API это реализует. Я попытался отправить специальный запрос полезной нагрузки, используя:
Код: Выделить всё
if(webOSService != null)
CustomCommand.sendCustomTextCommand(CustomCommandUri.insertTextUri,message,webOSService)
data object CustomCommand {
fun sendCustomTextCommand(uri : String, message : String, webOSTVService: WebOSTVService){
val payload = JSONObject()
payload.put("text", message)
payload.put("replace", 0)
val request = ServiceCommand(webOSTVService, uri, payload, true, null)
request.send()
}
}
Кстати, я создаю приложение для Android с помощью Jetpack Compse с MVI для хранения состояний/изменений процесса.
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-android
Мобильная версия