Skip to content

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

  1. Import the library into your app:

    1
    import TelenavSDKDataCollector
    
    1
    @import TelenavSDKDataCollector;
    
  2. 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];
    
  3. Initialize Data Collector Service with options:

    1
    TNDataCollectorService.initialize(sdkOptions: options)
    
    1
    [TNDataCollectorService initializeWithSdkOptions:options];
    
  4. 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.

  1. Initialize DataCollector client as described above (with SDK options).

  2. Add the NSLocationAlwaysUsageDescription key to your Info.plist file. For example:

    1
    2
    <key>NSLocationAlwaysUsageDescription</key>
    <string>Monitor your location in order to improve insurance policy rate</string>
    

  3. Call requestAlwaysAuthorization on any instance of CLLocationManager before calling methods of library:

    1
    2
    3
    import CoreLocation
    ...
    locationManager.requestAlwaysAuthorization()
    
    1
    2
    3
    @import CoreLocation;
    ...
    [locationManager requestAlwaysAuthorization];
    
  4. Import the library into your app:

    1
    import TelenavDataSourceCenter
    
    1
    @import TelenavDataSourceCenter;
    
  5. 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"];
    
  6. 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.

  7. 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.