Mobile SDK

iOS or Android

Overview - Migration v2.2 to v2.3

Info: Stellantis Mobile SDK is not publicly available.

This page list the breaking changes introduced from v2.2 to v2.3 of of Stellantis Connected Vehicles SDK. The following APIs should be modified in your integration when updating the SDK. If you are looking for new features introduced in v2.3, check-out the changelog.

  • Enabling the Bluetooth Service
  • Selecting VINs

SendToNav - Set - pims.vehicle.service #

  • This API now allows to work with all bluetooth services (except O2X), not only SendToNav.
  • The “vins” object has been added as a new parameter.
1
2
3
4
5
6
7
8
9
10
11
pims.set("pims.vehicle.service",
  mapOf( /* parameters */
  Pair("action", "start"),
  Pair("service", "bluetooth"),
  Pair("vins", listOf(
    mapOf<String, Boolean>("VR1AB12C3D4567890", true),
    mapOf<String, Boolean>("VR1AB12C3D4567891", false)
  )
  )
) { message -> /* handle message */ }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pims.set(api: "pims.vehicle.service", 
  parameters: [
  "action": "start",
  "service": "bluetooth",
  "vins": [
    {
      "vin": "VR1AB12C3D4567890",
      "gdpr": true
    },
    {
      "vin": "VR1AB12C3D4567891",
      "gdpr": false
    }
  ]
  ]
) { (message) in /* handle message */ }
1
2
3
4
5
6
// representation of the `succeeded` dictionary object message as JSON
{
  "transactionId": "953cfefb-bc72",
  "status": "SUCCEEDED",
  "result": { }
}

false

TripNDrive - Subscribe - pims.vehicle.trips #

  • This API doesn’t start TripNDrive service anymore. You should use set-pims.vehicle.service.
  • The “vins” object parameter has been removed.
1
2
3
4
5
6
/* Subscribe, see unsubscribe below */
pims.subscribe("pims.vehicle.trips"
) { message -> /* handle message */ }

/* Unsubscribe */
pims.unsubscribe( "pims.vehicle.trips" /* no params */ )
1
2
3
4
5
6
/* Subscribe, see unsubscribe below */
pims.subscribe(api: "pims.vehicle.trips"
) { (message) in /* handle message */ }

/* Unsubscribe */
pims.unsubscribe( api: "pims.vehicle.trips" /* no params */ )
1
2
3
4
5
6
// representation of the `succeeded` dictionary object message as JSON
{
  "transactionId": "953cfefb-bc72",
  "status": "SUCCEEDED",
  "result": { }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// representation of the `result` dictionary object message as JSON
{
  "transactionId": "953cfefb-bc72",
  "status": "RESULT",
  "result": {
    "type": "Current",
    "trip": {
        "alerts": [2,59,70], "category": "WORK", 
      "createdAt": "2021-03-30T08:18:20.143Z", "daysUntilNextMaintenance": 27,
      "destination": { "altitude": 1034, "city": "Paris", "country": "France", 
        "date": "2020-11-02T02:50:12.208Z", "intersection": "Rue de Rennes, Boulevard Saint-Germain", 
        "latitude": 8.74301, "longitude": 8.74301, "mileage": 10762, 
        "postalCode": 75019, "quality": 1, "street": "Rue de Rennes", "streetNumber": "16 Bis" },
      "distance": 42, "distanceToNextMaintenance": 596,
      "end": { "altitude": 1034, "city": "Paris", "country": "France", 
        "date": "2020-11-02T02:50:12.208Z", "intersection": "Rue de Rennes, Boulevard Saint-Germain", 
        "latitude": 8.74301, "longitude": 8.74301, "mileage": 10762, 
        "postalCode": 75019, "quality": 1, "street": "Rue de Rennes", "streetNumber": "16 Bis" },
      "fuelAutonomy": 150, "fuelConsumption": 3242500, "fuelLevel": 84,
      "id": 71, "maintenancePassed": true, "mergedIds": [2, 59, 70], "otherEnergyAutonomy": 98, 
      "otherEnergyConsumption": 817, "otherEnergyDistance": 48, "otherEnergyLevel": 20,
      "otherEnergyType": 1, "priceElectric": 0.85, "priceFuel": 1.27, "source": "CEA",
      "start": { "altitude": 1034, "city": "Paris", "country": "France", 
        "date": "2020-11-02T02:50:12.208Z", "intersection": "Rue de Rennes, Boulevard Saint-Germain", 
        "latitude": 8.74301, "longitude": 8.74301, "mileage": 10762, 
        "postalCode": 75019, "quality": 1, "street": "Rue de Rennes", "streetNumber": "16 Bis" },
      "travelTime": 748, "tripNumber": 7, "updatedAt": "2021-03-31T18:07:01.737Z", 
      "user": "uzumaqui.naruto@stellantis.com", "vin": "VR1AB12C3D45678909"
    }
  }
}

false

SendToNav/TripNDrive/Carkey - Set - pims.vehicle.vin #

  • This API allows to select a vehicle before using another API.
1
2
3
4
5
6
pims.set("pims.vehicle.vin",
  mapOf( /* parameters */
  Pair("vin", "VR1AB12C3D45678909")
  )
) { message -> /* handle message */ }
1
2
3
4
5
6
pims.set(api: "pims.vehicle.vin", 
  parameters: [
  "vin": "VR1AB12C3D45678909"
  ]
) { (message) in /* handle message */ }
1
2
3
4
5
6
// representation of the `succeeded` dictionary object message as JSON
{
  "transactionId": "953cfefb-bc72",
  "status": "SUCCEEDED",
  "result": { }
}

false

TripNDrive - Get - pims.vehicle.price #

  • This API now require first setting vin with set-pims.vehicle.vin.
  • The “vin” parameter has been removed.
1
2
3
pims.get("pims.vehicle.price"
) { message -> /* handle message */ }
1
2
3
pims.get(api: "pims.vehicle.price"
) { (message) in /* handle message */ }
1
2
3
4
5
6
7
8
9
// representation of the `succeeded` dictionary object message as JSON
{
  "transactionId": "953cfefb-bc72",
  "status": "SUCCEEDED",
  "result": { 
    "priceFuel": 1.27,
    "priceElectric": 0.85
  }
}

false

TripNDrive - Set - pims.vehicle.price #

  • This API now require first setting vin with set-pims.vehicle.vin.
  • The “vin” parameter has been removed.
1
2
3
4
5
6
7
pims.set("pims.vehicle.price",
  mapOf( /* parameters */
  Pair("priceFuel", 1.27),
  Pair("priceElectric", 0.85)
  )
) { message -> /* handle message */ }
1
2
3
4
5
6
7
pims.set(api: "pims.vehicle.price", 
  parameters: [
  "priceFuel": 1.27,
  "priceElectric": 0.85
  ]
) { (message) in /* handle message */ }
1
2
3
4
5
6
// representation of the `succeeded` dictionary object message as JSON
{
  "transactionId": "953cfefb-bc72",
  "status": "SUCCEEDED",
  "result": { }
}

false

SendToNav - Get - pims.vehicle.privacy #

  • This API now require first setting vin with set-pims.vehicle.vin.
  • The “vin” parameter has been removed.
  • This API has been transferred from SendToNav to BTConnectivity component.
1
2
3
pims.get("pims.vehicle.privacy"
) { message -> /* handle message */ }
1
2
3
pims.get(api: "pims.vehicle.privacy"
) { (message) in /* handle message */ }
1
2
3
4
5
6
7
8
// representation of the `succeeded` dictionary object message as JSON
{
  "transactionId": "953cfefb-bc72",
  "status": "SUCCEEDED",
  "result": { 
    "privacy": "fullPrivate"
  }
}

false

SendToNav - Set - pims.vehicle.destination #

1
2
3
4
5
6
7
8
pims.set("pims.vehicle.destination",
  mapOf( /* parameters */
  Pair("action", "extension"),
  Pair("preserve", true),
  Pair("extensionInformation", "https://goo.gl/maps/8VPNW6yTfHgPPqb16")
  )
) { message -> /* handle message */ }
1
2
3
4
5
6
7
8
pims.set(api: "pims.vehicle.destination", 
  parameters: [
  "action": "extension",
  "preserve": true,
  "extensionInformation": "https://goo.gl/maps/8VPNW6yTfHgPPqb16"
  ]
) { (message) in /* handle message */ }
1
2
3
4
5
6
7
8
// representation of the `succeeded` dictionary object message as JSON
{
  "transactionId": "953cfefb-bc72",
  "status": "SUCCEEDED",
  "result": {
    "status": "sent"
  }
}

false

Carkey - Get - pims.vehicle.carkey #

  • This API now require first setting vin with set-pims.vehicle.vin.
  • The “vin” parameter has been removed.
1
2
3
pims.get("pims.vehicle.carkey"
) { message -> /* handle message */ }
1
2
3
pims.get(api: "pims.vehicle.carkey"
) { (message) in /* handle message */ }
1
2
3
4
5
6
7
8
9
10
// representation of the `succeeded` dictionary object message as JSON
{
  "transactionId": "953cfefb-bc72",
  "status": "SUCCEEDED",
  "result": { 
    "isCarKeyVerified": "true",
    "cvsStatus": "active",
    "maxReactivationDate": "2021-07-29T22:25:09.898Z"
  }
}

false