Create Data Collector Client
To use data collector service and its features, the DataCollectorService needs to be initialized and a DataCollectorClient instance needs to be created.
The initialize
method will only need to be called once.
DataCollector client initialization
-
Import the library into your app:
1
import TelenavSDKDataCollector
1
@import TelenavSDKDataCollector;
-
Create SDK options with account credentials:
1 2 3 4 5 6 7 8
let options = TNDataCollectorSDKOptionsBuilder() .apiKey("API_KEY_PROVIDED_BY_TELENAV") .apiSecret("API_SECRET_PROVIDED_BY_TELENAV") .cloudEndPoint("CLOUD_ENDPOINT_PROVIDED_BY_TELENAV") .appInfo(name: "APPLICATION_NAME", version: "APPLICATION_VERSION") .userId("USER_ID") .deviceGuid("DEVICE_ID") .build()
1 2 3 4 5 6 7 8
TNDataCollectorSDKOptionsBuilder * builder = [TNDataCollectorSDKOptionsBuilder new]; [builder apiKey:@"API_KEY_PROVIDED_BY_TELENAV"]; [builder apiSecret:@"API_SECRET_PROVIDED_BY_TELENAV"]; [builder cloudEndPoint:@"CLOUD_ENDPOINT_PROVIDED_BY_TELENAV"]; [builder appInfoWithName:@"APPLICATION_NAME" version:@"APPLICATION_VERSION"]; [builder userId:@"USER_ID"]; [builder deviceGuid:@"DEVICE_ID"]; TNDataCollectorSDKOptions * options = [builder build];
-
Initialize Data Collector Service with options:
1
TNDataCollectorService.initialize(sdkOptions: options)
1
[TNDataCollectorService initializeWithSdkOptions:options];
-
Now you can get Data Collector Client from Service and SDK is ready to use:
1
let client = TNDataCollectorService.sharedClient
1
TNDataCollectorClient * client = TNDataCollectorService.sharedClient;
Warning
The fields ApiKey, ApiSecret, CloudEndPoint, ApplicationInfo, UserId, DeviceGuid of SDKOptions must be filled because they are mandatory for Data Collector functionality.
DataSource center initialization
DataSource library uses Telenav DataCollector SDK as dependency.
Warning
DataSource must be created after DataCollector is created.
-
Initialize DataCollector client as described above (with SDK options).
-
Add the
NSLocationAlwaysUsageDescription
key to yourInfo.plist
file. For example:1 2
<key>NSLocationAlwaysUsageDescription</key> <string>Monitor your location in order to improve insurance policy rate</string>
-
Call
requestAlwaysAuthorization
on any instance ofCLLocationManager
before calling methods of library:1 2 3
import CoreLocation ... locationManager.requestAlwaysAuthorization()
1 2 3
@import CoreLocation; ... [locationManager requestAlwaysAuthorization];
-
Import the library into your app:
1
import TelenavDataSourceCenter
1
@import TelenavDataSourceCenter;
-
Initialize Data Source Center with shared Data Collector Client and default configuration:
1 2
let client = TNDataCollectorService.sharedClient TNDataSourceCenter.initialize(dataCollectorClient: client)
1 2 3
TNDataCollectorClient * client = TNDataCollectorService.sharedClient; [TNDataSourceCenter initializeWithDataCollectorClient: client configFileName: NULL];
Or you can pass own configuration file name in accordance with Best practices:
1 2 3
let client = TNDataCollectorService.sharedClient TNDataSourceCenter.initialize(dataCollectorClient: client, configFileName: "my_datasourcecenter.json")
1 2 3
TNDataCollectorClient * client = TNDataCollectorService.sharedClient; [TNDataSourceCenter initializeWithDataCollectorClient: client configFileName: @"my_datasourcecenter.json"];
-
Start DataSource Center in order to launch collecting of events:
1
TNDataSourceCenter.sharedInstance?.start()
1
[TNDataSourceCenter.sharedInstance start];
It will start collecting all events in accordance with configuration file.
-
Use method
stop
of DataSource Center to terminate collecting:1
TNDataSourceCenter.sharedInstance?.stop()
1
[TNDataSourceCenter.sharedInstance stop];
Note
Data Source supports collecting GPS probe, accelerometer, gyroscope and gravity data at a configurable intervals. Please refer to Release Notes and Best practices to get latest information.