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];
}