Travel SDK serves your development as an extension of SmartLife App SDK. Before you integrate the Travel SDK, implement the device control feature on top of the SmartLife App SDK.
| Class name | Description |
|---|---|
| IODDeviceInfo(ODDeviceInfo) | Get smart travel device information, such as HD images and firmware details. |
| IODDeviceDPManager(ODDeviceDPManager) | Process device data points (DPs). For example, send DP data (advanced programming languages supported) and check whether device DPs are supported. |
| IODStore(ODStore) | Implement features related to offline stores. For example, get a list of offline stores and search for target ones. |
| IODTrack(ODTrack) | Implement features related to cycling navigation. For example, get a list of cycling routes and upload cycling routes. |
SmartLife App SDK supports device thumbnails by default. You can make the following API request to get the HD device image with dimensions of 800 x 800 pixels. This image is configured on the Tuya IoT Development Platform. Device firmware information is also returned in this call.
API description
void getDeviceIcon(String deviceId, IThingResultCallback<ProductMap> callback)
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| deviceId | String | Yes | - | The device ID. |
| callback | IThingResultCallback |
Yes | - | The callback. |
Data model of ProductMap
Fields of ProductMap
| Field | Type | Description |
|---|---|---|
| productIconVOMap | Map<String, ProductIcon> | The list of image information. |
Fields of ProductIcon
| Field | Type | Description |
|---|---|---|
| icon | String | The HD image of the device. Dimensions: 800 x 800 pixels. |
| smallIcon | String | The thumbnail of the device. |
Example
ThingODSDK.getIODDeviceInfoInstance().getDeviceIcon(deviceId, new IThingResultCallback<ProductMap>() {
@Override
public void onSuccess(ProductMap result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
API description
void getDeviceHardwareInfo(String deviceId, IThingResultCallback<DeviceHardwareInfo> listener);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| deviceId | String | Yes | - | The device ID. |
| listener | IThingResultCallback |
Yes | - | The callback. |
Data model of DeviceHardwareInfo
Fields of DeviceHardwareInfo
| Field | Type | Description |
|---|---|---|
| deviceId | String | The device ID. |
| deviceInfo | Map<String, Object> | The list of device information. |
Fields of deviceInfo
| Field | Type | Description |
|---|---|---|
| chassisNo | String | The vehicle identification number. |
| activeTime | String | The time when a device is activated. |
| productModel | String | The device model. |
Example
ThingODSDK.getIODDeviceInfoInstance().getDeviceHardwareInfo(devId, new IThingResultCallback<DeviceHardwareInfo>() {
@Override
public void onSuccess(DeviceHardwareInfo result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
API description
void publishDP(String deviceId, String dpCode, Object value, IThingDevice thingDevice, IResultCallback callback);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| deviceId | String | Yes | - | The device ID. |
| dpCode | String | Yes | "blelock_switch" | The value of dpCode that identifies a device DP. |
| value | Object | Yes | true | The DP value. |
| thingDevice | IThingDevice | Yes | ThingHomeSdk.newDeviceInstance(deviceBean.getDevId()) | - |
| callback | IResultCallback | Yes | - | The callback. |
Return parameters
None.
Example
IThingDevice mDevice = ThingHomeSdk.newDeviceInstance(deviceBean.getDevId());
ThingODSDK.getIODDeviceManagerInstance().publishDP(deviceBean.getDevId(), "blelock_switch", true, mDevice, new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
dpCodeAPI description
<T> T getValueByDPCode(String deviceId, String dpCode, Class<T> valueType);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| deviceId | String | Yes | - | The device ID. |
| dpCode | String | Yes | "blelock_switch" | The value of dpCode that identifies a device DP. |
| valueType | Object | Yes | true | The DP value. |
Return parameters
| Type | Example | Description |
|---|---|---|
| Boolean | true | The DP value. |
Example
boolean switchValue = ThingODSDK.getIODDeviceManagerInstance().getValueByDPCode(devId, "blelock_switch", Boolean.class);
API description
SchemaBean getSchemaByDPCode(String deviceId, String dpCode);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| deviceId | String | Yes | - | The device ID. |
| dpCode | String | Yes | "blelock_switch" | The value of dpCode that identifies a device DP. |
Return parameters
SchemaBean
For more information about SchemaBean, see Device Control.
Example
ThingODSDK.getIODDeviceManagerInstance().getSchemaByDPCode(devId, "blelock_switch");
dpCode-specific featureAPI description
boolean isDPCodeSupport(String deviceId, String dpCode);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| deviceId | String | Yes | - | The device ID. |
| dpCode | String | Yes | "blelock_switch" | The value of dpCode that identifies a device DP. |
Return parameters
| Type | Example | Description |
|---|---|---|
| Boolean | true | true: supported. false: not supported. |
Example
ThingODSDK.getIODDeviceManagerInstance().isDPCodeSupport(devId, "blelock_switch");
API description
void getStoreList(StoreGetReq storeGetReq, IThingResultCallback<List<StoreInfo>> callback);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| storeGetReq | StoreGetReq | Yes | - | - |
| callback | IThingResultCallback<List |
Yes | - | The callback. |
Data model of StoreInfo
| Field | Type | Description |
|---|---|---|
| id | String | The ID of a specified store. |
| name | String | The name of a specified store. |
| address | String | The address of the store. |
| lon | Double | The longitude of a specified store. |
| lat | Double | The latitude of a specified store. |
| source | String | The source of the store information. Valid values:
|
| type | String | The type of points of interest (POI). Example: store_electrocar means an electric vehicle store. |
| coordType | String | The type of coordinate system. Valid values:
|
| distance | Double | The distance from the store to the current location. Unit: meters. |
| favorite | Boolean | Specifies whether the store is favorited. |
| info | ExtraInfo | The additional information about the store. |
Data model of ExtraInfo
| Field | Type | Description |
|---|---|---|
| phone | String | The contact phone of the store. |
| picture | String | The image of the store. |
Data model of StoreGetReq
| Field | Type | Description |
|---|---|---|
| radius | Int | The radius of the geographical scope within which stores are returned. Unit: meters. |
| max | Int | The maximum number of stores to be returned in this call. |
| lon | Double | The longitude of the current location. |
| lat | Double | The latitude of the current location. |
| coordType | String | The type of coordinate system. Valid values:
|
| source | String | The source of the store information. Valid values:
|
| type | String | The type of point of interest (POI). Example: store_electrocar means an electric vehicle store. |
Example
double longitude = 121.355359;
double latitude = 31.217979;
StoreGetReq storeGetReq = new StoreGetReq storeGetReq = new StoreGetReq().setLon(longitude).setLat(latitude).setRadius(5).setSource(StoreInfoConstants.Source.THING.value).setType(StoreInfoConstants.STORE_TYPE.ELECTRONIC.value);
ThingODSDK.getIODStoreInstance().getStoreList(storeGetReq, new IThingResultCallback<List<StoreInfo>>() {
@Override
public void onSuccess(List<StoreInfo> result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast(errorMessage);
}
});
API description
void searchStoreList(StoreSearchReq storeSearchReq, IThingResultCallback<List<StoreInfo>> callback);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| storeSearchReq | StoreSearchReq | Yes | - | - |
| callback | IThingResultCallback<List |
Yes | - | The callback. |
Data model of StoreSearchReq
| Field | Type | Description |
|---|---|---|
| radius | Int | The radius of the geographical scope within which stores are returned. Unit: meters. |
| lon | Double | The longitude of the current location. |
| lat | Double | The latitude of the current location. |
| coordType | String | The type of coordinate system. Valid values:
|
| source | String | The source of the store information. Valid values:
|
| type | String | The type of point of interest (POI). Example: store_electrocar means an electric vehicle store. |
| keyword | String | The search keyword. |
| pageIndex | Int | The requested page number. |
| pageSize | Int | The maximum number of entries to be returned per page. |
Example
double longitude = 121.355359;
double latitude = 31.217979;
StoreSearchReq storeSearchReq = new StoreSearchReq().setLon(longitude).setLat(latitude).setRadius(5).setSource(StoreInfoConstants.Source.THING.value).setType(StoreInfoConstants.STORE_TYPE.ELECTRONIC.value).setKeyword("car");
ThingODSDK.getIODStoreInstance().searchStoreList(storeSearchReq, new IThingResultCallback<List<StoreInfo>>() {
@Override
public void onSuccess(List<StoreInfo> result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast(errorMessage);
}
});
Implement features related to cycling navigation. For example, get a list of cycling routes and upload cycling routes.
API description
void getTrackStatistic(TrackStatisticReq trackStatisticReq, IThingResultCallback<TrackStatisticInfo> callback);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| trackStatisticReq | TrackStatisticReq | Yes | - | - |
| callback | IThingResultCallback |
Yes | - | The callback. |
Data model of TrackStatisticReq
| Field | Type | Description |
|---|---|---|
| deviceId | String | The device ID. |
| startTime | Long | The start time of the cycling period. |
| endTime | Long | The end time of the cycling period. |
Data model of TrackStatisticInfo
Fields of TrackStatisticInfo
| Field | Type | Description |
|---|---|---|
| deviceId | String | The device ID. |
| list | List |
The list of segmented routes. |
Fields of TrackStatistic
| Field | Type | Description |
|---|---|---|
| totalTime | Long | The total duration of a segmented route. |
| startTime | Long | The start time of a segmented route. |
| averageSpeed | Double | The average speed of a segmented route. |
| maxSpeed | Double | The maximum speed of a segmented route. |
| totalMileage | Double | The total distance of a segmented route. |
| battery | Int | The battery information. |
Example
TrackStatisticReq trackStatisticReq = new TrackStatisticReq().setDeviceId(deviceId).setStartTime(startTime).setEndTime(endTime);
ThingODSDK.getIODTrackInstance().getTrackStatistic(trackStatisticReq, new IThingResultCallback<TrackStatisticInfo>() {
@Override
public void onSuccess(TrackStatisticInfo result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast(errorMessage);
}
});
API description
void getTrackSegment(TrackSegmentReq trackSegmentReq, IThingResultCallback<TrackSegmentInfo> callback);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| trackSegmentReq | TrackSegmentReq | Yes | - | - |
| callback | IThingResultCallback |
Yes | - | The callback. |
Data model of TrackSegmentReq
| Field | Type | Description |
|---|---|---|
| deviceId | String | The device ID. |
| lastId | Long | The route ID used to query the next array of data. |
| lessMileage | Double | The minimum distance, used to filter data. |
| pageSize | Int | The maximum number of entries to be returned per page. |
Data model of TrackSegmentInfo
Fields of TrackSegmentInfo
| Field | Type | Description |
|---|---|---|
| deviceId | String | The device ID. |
| lastIdStr | Long | The route ID used to query the next array of data. |
| areLastPage | Boolean | Indicate whether the last page is returned. |
| segmentList | List |
The array of route data. |
Fields of TrackSegment
| Field | Type | Description |
|---|---|---|
| duration | Long | The cycling duration of the route. Unit: seconds. |
| startTime | Long | The start time of the route. Unit: seconds. |
| endTime | Long | The end time of the route. Unit: seconds. |
| speed | Double | The cycling speed. Unit: km/h. |
| mileage | Double | The distance. Unit: km. |
| battery | Int | The battery Level. |
| bufferFlag | Int | The flag of the route. Valid values:
|
Example
TrackSegmentReq trackSegmentReq = new TrackSegmentReq().setDeviceId(deviceId).setLastId(-1).setLessMileage(1).setPageSize(10);
ThingODSDK.getIODTrackInstance().getTrackSegment(trackSegmentReq, new IThingResultCallback<TrackSegmentInfo>() {
@Override
public void onSuccess(TrackSegmentInfo result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast(errorMessage);
}
});
API description
void reportLocation(ReportLocationReq reportLocationReq, IThingResultCallback<Boolean> callback);
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| reportLocationReq | ReportLocationReq | Yes | - | - |
| callback | IThingResultCallback |
Yes | - | The callback. |
Data model of ReportLocationReq
Fields of ReportLocationReq
| Field | Type | Description |
|---|---|---|
| deviceId | String | The device ID. |
| productId | String | The product ID (PID). |
| payLoad | PayLoad | The location information. |
Fields of PayLoad
| Field | Type | Description |
|---|---|---|
| accuracy | Float | The precision of the location information. Unit: meters. |
| battery | Int | The battery Level. |
| lat | Double | The latitude of the current location. |
| lon | Double | The longitude of the current location. |
| speed | Int | The current value of dpCode for speed. |
| mileage | Int | The current value of dpCode for mileage_once. |
| start | Boolean | Indicates whether the current location is the start or end of the route. Valid values:
|
Example
double longitude = 121.355359;
double latitude = 31.217979;
ReportLocationReq.PayLoad payLoad = new ReportLocationReq.PayLoad().setLon(longitude).setLat(latitude).setBattery(50).setMileage(10).setSpeed(20).setStart(true);
ReportLocationReq reportLocationReq = new ReportLocationReq().setDeviceId(deviceId).setProductId(productId).setPayLoad(payLoad);
ThingODSDK.getIODTrackInstance().reportLocation(reportLocationReq, new IThingResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast(errorMessage);
}
});
Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback