Android ConnectSDK Отображение значка приложения от подключенного телевизионного устройства не работает. Ошибка - это доAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android ConnectSDK Отображение значка приложения от подключенного телевизионного устройства не работает. Ошибка - это до

Сообщение Anonymous »

Я пытаюсь управлять телевизором LG, используя ConnectSDK в Android. Я могу подключать и управлять телевизором из приложения. Я получаю список всех приложений, которые мне нужны, возвращенные в JSON из библиотеки ConnectSDK, но я не могу заставить значки отображаться. Я пытаюсь отобразить их, используя Glide.

Код: Выделить всё

    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>
Затем подключитесь к устройству, выбранному из списка < /p>
    private fun updateStartConnectingToDevice(connectedDevice) {
device.setPairingType(DeviceService.PairingType.PIN_CODE)
device.connect()
if(device.listeners != null) {
device.removeListener(myConnectableDeviceListener)
}
device.addListener(myConnectableDeviceListener)
}
< /code>
, затем после подключения к устройству < /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>
Загрузка изображения значка в UI < /p>
 GlideImage(
model = test,
contentDescription = test,
modifier = Modifier
.padding(10.dp)
.size(100.dp),
)
< /code>
Каждый раз, когда я пытаюсь загрузить изображение, я получаю эту ошибку < /p>
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

Я пробовал поиск с помощью различных методов в документации ConnectSDK, но до сих пор не удас. Я могу перейти к выбранным приложениям, перемещать курсор выбора и отправлять сообщения. Единственная проблема - загрузка значков из списка приложений. https://github.com/connectsdk/connect-s ... issues/412
Они в конечном итоге заявляют, что используют тот же метод, который я использую, но чтобы добавить ссылку значка в TrustManager. Как бы я это сделал? < /P>
Чего мне не хватает? Любое руководство будет оценено.

Код: Выделить всё

    val webTrust = WebOSTVTrustManager()
val cert : X509Certificate? = webOSService?.webOSTVServiceConfig?.serverCertificate
webTrust.setExpectedCertificate(cert)
Log.i("Sample", "${webOSService?.webOSTVServiceConfig?.serverCertificate}")
Log.i("Sample", "${webTrust.lastCheckedCertificate}")
< /code>
Я получаю сертификат сервера и могу прочитать его, используя первую запись журнала, указанную выше. Я получаю NULL, если прочитаю вторую запись, которая после того, как я его установил. webtrust.setexpectedCertificate (cert) < /p>
Я читаю через клиентскую и серверную сторону сокетов, созданных в SDK в https://github.com/connectsdk/connect-sdk-android-core/blob/7e412a0d99d7b7dd7e2e84d9977fab215ad0f1dc/src/come/connectsdk/service/webos/webostvserscocetclient.jconnectsdk/service/webos/webostvscolectcocket.jjaviscocket.j.jconnectsdk/service/webos/webostvsockeclient />  Во время чтения методов я вижу, что они запускают определенные комментарии журнала
"Validity"
"Зарегистрированный"
, которые я получаю в logcat.  < /p>
сразу после подключения к устройству я вижу входной записи logcat: < /p>




/> < /blockquote>
Если сертификат сервера был должным образом зарегистрирован, он будет отображать информацию о сертификате вместо (любого), как указано в Webostvtrustmanager
https://github.com/ConnectSDK/Connect-SDK-Android-Core/blob/7e412a0d99d7b7dd7e2e84d9977fab215ad0f1dc/src/com/connectsdk/service/webos/WebOSTVTrustManager.java
@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];
}
Любая помощь будет оценена.

Подробнее здесь: https://stackoverflow.com/questions/793 ... working-er
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»