To use OTA service features, OtaService needs to be initialized and a HomeAreaClient (or SubRegionAreaClient) instance needs to be created. The initialize() method will only need to be called once.
ThreadotaInitializationThread=newThread(newRunnable(){publicvoidrun(){try{SDKOptionssdkOptions=SDKOptions.builder().setApiKey("#API_KEY_PROVIDED_BY_TELENAV#").setApiSecret("#API_SECRET_PROVIDED_BY_TELENAV#").setCloudEndPoint("#CLOUD_ENDPOINT_PROVIDED_BY_TELENAV#").setSdkDataDir("#PATH_TO_LOCAL_DATA#").setSdkCacheDataDir("#PATH_TO_DOWNLOAD_OTA_DATA#").setUserId("#USER_ID#").setDeviceGuid("#DEVICE_ID#").setApplicationInfo(ApplicationInfo.builder("#APPLICATION_NAME#","#APPLICATION_VERSION#").build()).build();OtaServiceSettingssettings=OtaServiceSettings.builder().setMaxSubRegionAreasCount(2).build();OtaService.initialize(MainActivity.this,sdkOptions,settings);HomeAreaClienthomeClient=OtaService.getHomeAreaClient();SubRegionAreaClientsubRegionClient=OtaService.getSubRegionAreaClient();}catch(OtaInvalidConfigException|OtaInitializationFailedExceptione){// SDK init error, check your API key/secret, cloud endpoint and lib dependencies}}}},"otaInitializationThread");otaInitializationThread.setDaemon(true);otaInitializationThread.start();
1 2 3 4 5 6 7 8 9101112131415161718192021222324
valotaInitializationThread=Thread(Runnable{try{valsdkOptions=SDKOptions.builder().setApiKey("#API_KEY_PROVIDED_BY_TELENAV#").setApiSecret("#API_SECRET_PROVIDED_BY_TELENAV#").setCloudEndPoint("#CLOUD_ENDPOINT_PROVIDED_BY_TELENAV#").setSdkDataDir("#PATH_TO_LOCAL_DATA#").setSdkCacheDataDir("#PATH_TO_DOWNLOAD_OTA_DATA#").setUserId("#USER_ID#").setDeviceGuid("#DEVICE_ID#").setApplicationInfo(ApplicationInfo.builder("#APPLICATION_NAME#","#APPLICATION_VERSION#").build()).build()valsettings=OtaServiceSettings.builder().setMaxSubRegionAreasCount(2).build()OtaService.initialize(MainActivity.this,sdkOptions,settings)valhomeClient:HomeAreaClient=OtaService.getHomeAreaClient()valsubRegionClient:SubRegionAreaClient=OtaService.getSubRegionAreaClient()}catch(e:OtaException){// SDK init error, check your API key/secret, cloud endpoint and lib dependencies}})otaInitializationThread.isDaemon=trueotaInitializationThread.start()
The SDK is now ready to use!
Warning
Since version 1.4.10.+, the method 'OtaService.initialize' can only run in a worker thread. Invoking it from the main thread leads to throwing an OtaInitializationFailedException.
Warning
The fields ApiKey, ApiSecret, CloudEndPoint, SdkDataDir, SdkCacheDataDir, UserId, DeviceGuid, ApplicationInfo of SDKOptions must be filled because they are mandatory for ota client functionality.