Android ConnectSdk Zeigt das App -Symbol von angeschlossenem TV -Gerät an, das nicht funktioniert. Fehler ist VertrauensAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Android ConnectSdk Zeigt das App -Symbol von angeschlossenem TV -Gerät an, das nicht funktioniert. Fehler ist Vertrauens

Post by Anonymous »

Ich versuche, einen LG -Fernseher mit dem ConnectSDK in Android zu steuern. Ich kann den Fernseher aus der App verbinden und steuern. Ich erhalte die Liste aller Apps, die ich in JSON aus der ConnectSDK -Bibliothek zurückgegeben habe, aber ich kann die Symbole nicht zum Anzeigen bringen. Ich versuche, sie mit Glide anzuzeigen.

Code: Select all

    var myDiscoveryListener = MyDiscoveryListener(mHandler)
var myConnectableDeviceListener = MyConnectableDeviceListener(mHandler)
var mDiscoveryManager: DiscoveryManager

init {
DiscoveryManager.init(applicationContext)
mDiscoveryManager = DiscoveryManager.getInstance()
mDiscoveryManager.pairingLevel = DiscoveryManager.PairingLevel.ON
mDiscoveryManager.registerDefaultDeviceTypes()
mDiscoveryManager.capabilityFilters = mutableListOf(CapabilityFilter(Launcher.Application_List))
mDiscoveryManager.start()
mDiscoveryManager.addListener(myDiscoveryListener)
//mConnectionDriver.startDiscovery(mHandler)
}
< /code>
Dann stellen Sie eine Verbindung zum Gerät her, das aus der Liste < /p>
ausgewählt wurde    private fun updateStartConnectingToDevice(connectedDevice) {
device.setPairingType(DeviceService.PairingType.PIN_CODE)
device.connect()
if(device.listeners != null) {
device.removeListener(myConnectableDeviceListener)
}
device.addListener(myConnectableDeviceListener)
}
< /code>
Dann einmal an das Gerät angeschlossen < /p>
val service = device?.services?.find { it.serviceName.toString().lowercase().contains("webos") }
val webOSService: WebOSTVService? =
device?.getServiceByName(service?.serviceName)?.getAPI(WebOSTVService::class.java)

webOSService?.getLaunchPoints(object : WebOSTVService.LaunchPointsListener {
override fun onError(error: ServiceCommandError?) {

}

override fun onSuccess(`object`: JSONArray?) {
val json = `object`?.get(0) as JSONObject
test = json.get("icon").toString()
Log.i("Sample JSONArray", json.get("icon").toString())

Log.i("Sample JSONArray", `object`.toString())

}
< /code>
Laden des Symbolbildes in UI < /p>
 GlideImage(
model = test,
contentDescription = test,
modifier = Modifier
.padding(10.dp)
.size(100.dp),
)
< /code>
Jedes Mal, wenn ich versuche, das Bild zu laden, erhalte ich diesen Fehler < /p>
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

Ich habe versucht, verschiedene Methoden in der ConnectSDK -Dokumentation zu durchsuchen, aber ich bin bisher nicht erfolgreich.
Die Verbindung zum Gerät ist gut. Ich kann zu verschiedenen ausgewählten Apps gehen, den Auswahlschreiber verschieben und Nachrichten senden. Das einzige Problem ist das Laden der Symbole aus der App -Liste. https://github.com/connectsdk/connect-s ... issues/412
Sie sagen, dass sie dieselbe Methode verwenden, die ich verwende, aber den Icon-Link zu TrustManager hinzufügen kann. Wie würde ich das machen? < /P>
Was fehlt mir? Jede Anleitung würde geschätzt.

Code: Select all

    val webTrust = WebOSTVTrustManager()
val cert : X509Certificate? = webOSService?.webOSTVServiceConfig?.serverCertificate
webTrust.setExpectedCertificate(cert)
Log.i("Sample", "${webOSService?.webOSTVServiceConfig?.serverCertificate}")
Log.i("Sample", "${webTrust.lastCheckedCertificate}")
< /code>
Ich erhalte das Serverzertifikat und kann es mit dem oben angegebenen ersten Protokolleintrag lesen. Ich bekomme einen Null, wenn ich den zweiten Eintrag lese, der nach dem Einstellen ihn erledigt würde. webtrust.setExpectedCertificate (cert) < /p>
Ich lese die Client- und Serverseite der in der SDK in SDK erstellten Steckdose durch https://github.com/connectsdk/connect-sdk-android-core/blob/7e412a0d99d7b7dd7e2e84d9977fab215ad0f1dc/src/com/connectsdk/service/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/we />  Beim Durchlesen der Methoden sehe ich bestimmte Protokoll -Kommentare von
"Validität"
"Registriert"
, die ich in Logcat bekomme.  /> < /blockquote>
Wenn das Serverzertifikat ordnungsgemäß registriert wurde, wird die Zertifikatsinformationen anstelle von (beliebt) angezeigt, wie im WebOstVTVTrustManager
https://github.com/connectsdk/connect-sdk-android-core/blob/7e412a0d99d7b7dd7e2e84d99777fab215ad0f1dc/src/connectsddk/Service/Webos/Webos/webos/webos/webos/webos/webos/webos/webos/webos/webos/we@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
Log.d(Util.T, "Expecting device cert " + (expectedCert != null ? expectedCert.getSubjectDN() : "(any)"));

if (chain != null && chain.length > 0) {
X509Certificate cert = chain[0];

lastCheckedCert = cert;

if (expectedCert != null) {
byte [] certBytes = cert.getEncoded();
byte [] expectedCertBytes = expectedCert.getEncoded();

Log.d(Util.T, "Device presented cert " + cert.getSubjectDN());

if (!Arrays.equals(certBytes, expectedCertBytes)) {
throw new CertificateException("certificate does not match");
}
}
} else {
lastCheckedCert = null;
throw new CertificateException("no server certificate");
}
}

@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
Jede Hilfe wäre geschätzt.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post