2014-09-09 4 views
0

Я работаю над приложением Chromecast, которое появилось на рынке ненадолго. Мы начали получать отчеты о том, что люди не могут подключиться к Chromecast с первой попытки после его загрузки. Мы не смогли воспроизвести это до недавнего времени (и только одно устройство обнаруживает такое поведение)Приложение Chromecast не подключается при первой попытке

Значок Chromecast показывает, что он подключен, но приложение никогда не запускается. В конце концов значок Chromecast показывает, что он отключен. Я схватил с этого устройства логарифм.

D/CastSocket(1037): [MiniDeviceController-1] onWritable when state is 1 
D/CastSocket(1037): [MiniDeviceController-1] SSLException encountered. Tearing down the socket. 
D/CastSocket(1037): javax.net.ssl.SSLException: Error occured in delegated task:javax.net.ssl.SSLException: Not trusted server certificate 
D/CastSocket(1037): at com.android.org.conscrypt.HandshakeProtocol.fatalAlert(HandshakeProtocol.java:316) 
D/CastSocket(1037): at com.android.org.conscrypt.HandshakeProtocol.wrap(HandshakeProtocol.java:268) 
D/CastSocket(1037): at com.android.org.conscrypt.SSLEngineImpl.wrap(SSLEngineImpl.java:693) 
D/CastSocket(1037): at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:438) 
D/CastSocket(1037): at beb.k(SourceFile:671) 
D/CastSocket(1037): at bef.run(SourceFile:96) 
D/CastSocket(1037): at java.lang.Thread.run(Thread.java:841) 
D/CastSocket(1037): Caused by: com.android.org.conscrypt.AlertException: javax.net.ssl.SSLException: Not trusted server certificate 
D/CastSocket(1037): at com.android.org.conscrypt.HandshakeProtocol.fatalAlert(HandshakeProtocol.java:316) 
D/CastSocket(1037): at com.android.org.conscrypt.ClientHandshakeImpl.verifyServerCert(ClientHandshakeImpl.java:559) 
D/CastSocket(1037): at com.android.org.conscrypt.ClientHandshakeImpl.processServerHelloDone(ClientHandshakeImpl.java:373) 
D/CastSocket(1037): at com.android.org.conscrypt.ClientHandshakeImpl$1.run(ClientHandshakeImpl.java:283) 
D/CastSocket(1037): at com.android.org.conscrypt.DelegatedTask.run(DelegatedTask.java:36) 
D/CastSocket(1037): at beb.a(SourceFile:721) 
D/CastSocket(1037): at beb.j(SourceFile:635) 
D/CastSocket(1037): ... 2 more 
D/CastSocket(1037): Caused by: javax.net.ssl.SSLException: Not trusted server certificate 
D/CastSocket(1037): ... 9 more 
D/CastSocket(1037): Caused by: java.security.cert.CertificateNotYetValidException 
D/CastSocket(1037): at com.android.org.conscrypt.OpenSSLX509Certificate.checkValidity(OpenSSLX509Certificate.java:216) 
D/CastSocket(1037): at com.android.org.conscrypt.OpenSSLX509Certificate.checkValidity(OpenSSLX509Certificate.java:209) 
D/CastSocket(1037): at bdu.checkServerTrusted(SourceFile:47) 
D/CastSocket(1037): at com.android.org.conscrypt.ClientHandshakeImpl.verifyServerCert(ClientHandshakeImpl.java:556) 
D/CastSocket(1037): ... 7 more 
D/CastSocketMultiplexer(1037): *** removing socket CastSocket:MiniDeviceController-1 (onWritable) 
D/CastSocket(1037): [MiniDeviceController-1] doTeardown with reason=4 
D/DeviceFilter(1037): DEACTIVATE MiniDeviceController-1; finished=false 
D/DeviceFilter(1037): socket is disconnected 
D/CastMediaRouteProvider(1037): onDeviceFilterError for 516b4a3a710d7bdfe8dc75ff4c4901a0: connection failed: error=4 

Это похоже на API Chromecast в сервисах Google Play. Мы используем Amazon S3 для размещения и использования их SSL-сертификата. Кажется странным, что после этой начальной ошибки устройства подключаются. Мне не удалось обернуть мозг вокруг этого. Наше приложение доступно только на устройствах Android, и не все устройства демонстрируют это поведение.

+0

Можете ли вы поймать исключение и повторить попытку? Второй запрос должен быть b OK –

+0

Когда вы вызываете соединение, вы получаете onConnected() обратный вызов? В приложении не должно быть необходимости перехватывать исключение и повторить попытку. –

+0

Мне нужно отследить устройство, которое представляет с ошибкой и отлаживает ли я получение обратного вызова onConnected(). Я обновлю после проверки этого. – scheibk

ответ

0

Исключение «CertificateNotYetValidException» обычно происходит, когда часы клиента выключены. Возможно, пользователи, столкнувшиеся с этой проблемой, имеют свою текущую дату, установленную в прошлом. Вы можете воспроизвести это, изменив текущую дату своего устройства в прошлом.

+0

Интересно, что Chromecasts не было видно, когда время было 2 часа. Он не воспроизвел проблему, которую я описал. – scheibk

Смежные вопросы