Skip to content

DriveMotionUsersClient

DriveMotion supports switching user opt in status through method calls optInRequest or optOutRequest when DriveMotionSettings.optInRequired is set to true. To use this feature, developers must obtain DriveMotionUsersClient after initializing DriveMotion.

Get TNDriveMotionUsersClient

1
2
3
4
5
    do {
        let driveMotionUsersClient = try TNDriveMotionService.getDriveMotionUsersClient()
    } catch {
        // The SDK is not initialized
    }
1
2
3
4
5
    NSError *error;
    TNDriveMotionClient *driveMotionClient = [TNDriveMotionService getDriveMotionUsersClientAndReturnError:&error];
    if (error != NULL) {
        // The SDK is not initialized
    }

Use TNDriveMotionUsersClient

TNDriveMotionUsersClient provides the entrance to get user profiles, opt in, opt out, and delete user account.

Get User Profile Request

The getUserProfileRequest method will retrieve and update current user profile from cloud service if any of userAlias, userState, or userConsent is changed.

Build Request

1
    let request = driveMotionUsersClient.getUserProfileRequest().build()
1
     TNGetUserProfileRequest *request = [[driveMotionUsersClient getUserProfileRequest] build];

Create a Call and execute it

Callback is a closure accepting response and error parameters.

1
2
3
4
5
6
7
8
9
    let call = TNGetUserProfileCall()
    call.execute(request: request) { response, error in
        if let response = response {
            // Handle response
        }
        if let error = error {
            // Handle error
        }
    }
1
2
3
4
5
6
7
8
9
     TNGetUserProfileCall *call = [[TNGetUserProfileCall alloc] init];
     [call executeWithRequest:request callback:^(TNGetUserProfileResponse * _Nullable response, TNDriveMotionException * _Nullable error) {
         if (response) {
             // Handle response
         }
         if (error) {
            // Handle error
         }
     }];

Opt In Request

The optInRequest method will let user opt in when TNDriveMotionSettings.optInRequired is true.

Build Request

1
2
3
4
5
    do {
        let request = try driveMotionUsersClient.optInRequest().build()
    } catch {
        // build request error
    }
1
2
3
4
5
    NSError *error;
    TNOptInRequest *request = [[driveMotionUsersClient optInRequest] buildAndReturnError:&error];
    if (error != NULL) {
        // build request error
    }

Create a Call and execute it

Callback is a closure accepting response and error parameters.

1
2
3
4
5
6
7
8
9
    let call = TNOptInCall()
    call.execute(request: request) { response, error in
        if let response = response {
            // Handle response
        }
        if let error = error {
            // Handle error
        }
    }
1
2
3
4
5
6
7
8
9
     TNOptInCall *call = [[TNOptInCall alloc] init];
     [call executeWithRequest:request callback:^ (TNOptInResponse * _Nullable response , TNDriveMotionException * _Nullable error ) {
         if (response) {
             // Handle response
         }
         if (error) {
            // Handle error
         }
     }];

Opt Out Request

The optOutRequest method will let user opt out when TNDriveMotionSettings.optInRequired is true.

Build Request

1
2
3
4
5
    do {
        let request = try driveMotionUsersClient.optOutRequest().build()
    } catch {
        // build request error
    }
1
2
3
4
5
    NSError *error;
    TNOptInRequest *request = [[driveMotionUsersClient optOutRequest] buildAndReturnError:&error];
    if (error != NULL) {
        // build request error
    }

Create a Call and execute it

Callback is a closure accepting response and error parameters.

1
2
3
4
5
6
7
8
9
    let call = TNOptOutCall()
    call.execute(request: request) { response, error in
        if let response = response {
            // Handle response
        }
        if let error = error {
            // Handle error
        }
    }
1
2
3
4
5
6
7
8
9
     TNOptOutCall *call = [[TNOptOutCall alloc] init];
     [call executeWithRequest:request callback:^ (TNOptOutResponse * _Nullable response , TNDriveMotionException * _Nullable error ) {
        if (response) {
             // Handle response
         }
         if (error) {
            // Handle error
         }
     }];

Delete Account And Data Request

The deleteAccountAndDataRequest method will delete user account and trip data.

Build Request

1
2
3
4
5
    do {
        let request = try driveMotionUsersClient.deleteAccountAndDataRequest().build()
    } catch {
        // build request error
    }
1
2
3
4
5
    NSError *error;
    TNDeleteAccountAndDataRequest *request = [[driveMotionUsersClient deleteAccountAndDataRequest] buildAndReturnError:&error];
    if (error != NULL) {
        // build request error
    }

Create a Call and execute it

Callback is a closure accepting response and error parameters.

1
2
3
4
5
6
7
8
9
    let call = TNDeleteAccountAndDataCall()
    call.execute(request: request) { response, error in
      if let response = response {
          // Handle response
      }
      if let error = error {
          // Handle error
      }
    }
1
2
3
4
5
6
7
8
9
     TNDeleteAccountAndDataCall *call = [[TNDeleteAccountAndDataCall alloc] init];
     [call executeWithRequest:request callback:^ (TNDeleteAccountAndDataResponse * _Nullable response , TNDriveMotionException * _Nullable error ) {
         if (response) {
             // Handle response
         }
         if (error) {
            // Handle error
         }
     }];