TextInputControl SendText an webOS LG TV mit ConnectSDK in AndroidAndroid

Forum für diejenigen, die für Android programmieren
Guest
 TextInputControl SendText an webOS LG TV mit ConnectSDK in Android

Post by Guest »

Ich versuche, mithilfe der ConnectSDK-API eingegebenen Text von einem Android-Mobilgerät an die Suchleiste in LG TV webOS zu senden.
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!")
Dies ist das Ergebnis der gesendeten Befehle:

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()
}
}
Ab sofort kann ich Apps starten, nach HOME gehen, ZURÜCK gehen, die Maus steuern, den Cursor nach OBEN, UNTEN, LINKS, RECHTS bewegen, die EINGABETASTE drücken und NACHRICHTEN senden. Fast alle Funktionen funktionieren, aber ich kann das Texteingabesystem anscheinend nicht dazu bringen, sendText zu erfassen und in den entsprechenden Bildschirm einzufügen.
Übrigens erstelle ich die App in Android mit Jetpack Compse mit MVI um Zustände/Prozessänderungen festzuhalten.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post