Я пытаюсь запустить DJI importSDKDemo образец кода на умных часах Android, и я получаю исключение KeyStore в startSDKRegistration (), когда экземпляр DJISDKManager пытается зарегистрировать приложение.
DJI SDK: v4.9
Android SDK (compileSDKversion): 28
Android-устройство: Mobvoi TicWatch Pro 0584 с Wear OS v2.6
Mobvoi TicWatch подключен к определенной сети Wi-Fi на моем рабочем месте, с модемом рядом, чтобы убедиться, что он не связан с общедоступной сетью WiFi, которую я ранее использовал
Я не смог найти никакой информации, касающейся этой конкретной проблемы, кроме этого отчета о проблеме, я попытался применить предложенное там решение, но я все еще получаю Исключения KeyStore
Я не уверен, какой код включить в этот пост, но есть часть, где программа останавливается, после DJISDKManager.getInstance.registerApp (...), который обычно является той же версией, что и в importSDKDemo.
private void startSDKRegistration() {
if (isRegistrationInProgress.compareAndSet(false, true)) {
AsyncTask.execute(new Runnable() {
@Override
public void run() {
showToast("registering, pls wait...");
DJISDKManager.getInstance().registerApp(MainActivity.this.getApplicationContext(), new DJISDKManager.SDKManagerCallback() {
@Override
public void onRegister(DJIError djiError) {
if (djiError == DJISDKError.REGISTRATION_SUCCESS) {
showToast("Register Success");
DJISDKManager.getInstance().startConnectionToProduct();
} else {
showToast("Register sdk fails, please check the bundle id and network connection!");
}
Log.v(TAG, djiError.getDescription());
}
А вот полный стек исключений KeyStore, которые я получаю несколько раз:
W/KeyStore: KeyStore exception
android.os.ServiceSpecificException: (code 7)
at android.os.Parcel.createException(Parcel.java:1964)
at android.os.Parcel.readException(Parcel.java:1918)
at android.os.Parcel.readException(Parcel.java:1868)
at android.security.IKeystoreService$Stub$Proxy.get(IKeystoreService.java:786)
at android.security.KeyStore.get(KeyStore.java:195)
at android.security.keystore.AndroidKeyStoreSpi.engineGetCertificate(AndroidKeyStoreSpi.java:144)
at java.security.KeyStore.getCertificate(KeyStore.java:1120)
at android.security.net.config.KeyStoreCertificateSource.ensureInitialized(KeyStoreCertificateSource.java:61)
at android.security.net.config.KeyStoreCertificateSource.findBySubjectAndPublicKey(KeyStoreCertificateSource.java:77)
at android.security.net.config.CertificatesEntryRef.findBySubjectAndPublicKey(CertificatesEntryRef.java:47)
at android.security.net.config.NetworkSecurityConfig.findTrustAnchorBySubjectAndPublicKey(NetworkSecurityConfig.java:123)
at android.security.net.config.TrustedCertificateStoreAdapter.getTrustAnchor(TrustedCertificateStoreAdapter.java:51)
at com.android.org.conscrypt.TrustManagerImpl.findTrustAnchorBySubjectAndPublicKey(TrustManagerImpl.java:945)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:487)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:418)
at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:339)
at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:88)
at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:208)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:404)
at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:375)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:224)
at dji.thirdparty.okhttp3.internal.connection.RealConnection.connectTls(Unknown Source:65)
at dji.thirdparty.okhttp3.internal.connection.RealConnection.establishProtocol(Unknown Source:54)
at dji.thirdparty.okhttp3.internal.connection.RealConnection.connect(Unknown Source:202)
at dji.thirdparty.okhttp3.internal.connection.StreamAllocation.findConnection(Unknown Source:247)
at dji.thirdparty.okhttp3.internal.connection.StreamAllocation.findHealthyConnection(Unknown Source:0)
at dji.thirdparty.okhttp3.internal.connection.StreamAllocation.newStream(Unknown Source:22)
at dji.thirdparty.okhttp3.internal.connection.ConnectInterceptor.intercept(Unknown Source:26)
at dji.thirdparty.okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:165)
at dji.thirdparty.okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:6)
at dji.thirdparty.okhttp3.internal.cache.CacheInterceptor.intercept(Unknown Source:137)
at dji.thirdparty.okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:165)
at dji.thirdparty.okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:6)
at dji.thirdparty.okhttp3.internal.http.BridgeInterceptor.intercept(Unknown Source:160)
at dji.thirdparty.okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:165)
at dji.thirdparty.okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(Unknown Source:60)
at dji.thirdparty.okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:165)
at dji.thirdparty.okhttp3.internal.http.RealInterceptorChain.proceed(Unknown Source:6)
at dji.thirdparty.okhttp3.RealCall.getResponseWithInterceptorChain(Unknown Source:114)
at dji.thirdparty.okhttp3.RealCall$AsyncCall.execute(Unknown Source:4)
at dji.thirdparty.okhttp3.internal.NamedRunnable.run(Unknown Source:17)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Я ожидаю, что регистрация будет разворачиваться нормально, я получаю экран «Hello Round World» и сообщение «Регистрация pls wait ...» showToast, но после нескольких исключений KeyStore я получаю «Ошибка регистрации SDK, пожалуйста, проверьте идентификатор пакета и подключение к сети! " сообщение от OnRegister (DJIError djiError)
с DJIError, равным
djiError = {DJISDKError@14580} "The metadata received from server is invalid, please reconnect to the server and try."
Если регистрация завершена в обычном режиме, пользователь должен получить сообщение showToast «Register Success».
Кто-нибудь знает, что может вызвать эти исключения KeyStore?
Спасибо, что уделили время!