Dies ist die API, die LG für die Kommunikation mit LG verwendet TV für die mobile Entwicklung. Nach dem Herstellen der Verbindung ist die Dokumentation etwas unklar.
Bisher kann ich die meisten Dinge auf dem Fernseher über die API steuern, aber ich kann anscheinend keinen Text an die YouTube-Suchleiste senden. Die folgende Implementierung funktioniert, wenn es eine Suchleiste gibt, auf die man klicken kann, um den Tastaturfokus zu erhalten, aber das ist das Problem mit der YouTube-Suchleiste. Es gibt keinen anklickbaren Bereich, auf den man sich konzentrieren kann.
Code: Select all
webOSService?.textInputControl?.subscribeTextInputStatus(object :
TextInputStatusListener {
override fun onError(error: ServiceCommandError?) {
}
override fun onSuccess(`object`: TextInputStatusInfo?) {
}
})
Code: Select all
val device = state.connectedDevice
val webOSService = device?.getCapability(WebOSTVService::class.java)
webOSService?.sendText("Hello!")
Connect SDK com.itgeek25.sampletvremote D webOS Socket [OUT ]: {"type": "request", "id": "18", "uri": "ssap://com.webos.service.ime/insertText", "payload": {"text": "Hallo !","replace":0}}
2025-01-11 01:49:22.059 19058-19134 Connect SDK
com.itgeek25.sampletvremote D webOS Socket [IN] :
{"type":" Antwort, "id": "18", "payload": {"returnValue": true}
Ich habe versucht, den Breadcrumbs zu folgen, wie die API dies implementiert. Ich habe versucht, eine benutzerdefinierte Payload-Anfrage zu senden mit:
Code: Select all
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()
}
}
Übrigens erstelle ich die App in Android mit Jetpack Compse mit MVI um Zustände/Prozessänderungen festzuhalten.