更新时间:2024-07-01 08:14:29下载pdf
出行 SDK 依赖于涂鸦智能 智能生活 App SDK,基于此基础上进行拓展开发。因此,接入出行 SDK 前,请先实现智能生活 App SDK 设备控制 功能。
| 类名 | 说明 |
|---|---|
| IODDeviceInfo(ODDeviceInfo) | 户外设备信息获取,包括设备的高清图片、固件信息等 |
| IODDeviceDPManager(ODDeviceDPManager) | 便捷操作设备 DP,包括下发 DP(支持高级语法)、判断设备是否支持 DP 等 |
| IODStore(ODStore) | 线下门店接口,包括获取门店、搜索门店等 |
| IODTrack(ODTrack) | 骑行轨迹接口,包括上传轨迹、获取轨迹等 |
智能生活 App SDK 默认提供的设备图片为缩略图。但您可通过以下接口获取涂鸦开发者平台配置的 800x800 设备高清图片,同时也可获取设备固件信息。
接口说明
void getDeviceIcon(String deviceId, IThingResultCallback<ProductMap> callback)
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| deviceId | String | 是 | - | 设备 ID |
| callback | IThingResultCallback |
是 | - | 结果回调 |
ProductMap 数据模型
ProductMap 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| productIconVOMap | Map<String, ProductIcon> | 图片信息集合 |
ProductIcon 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| icon | String | 设备 800x800 大图 |
| smallIcon | String | 设备缩略图 |
示例代码
ThingODSDK.getIODDeviceInfoInstance().getDeviceIcon(deviceId, new IThingResultCallback<ProductMap>() {
@Override
public void onSuccess(ProductMap result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
接口说明
void getDeviceHardwareInfo(String deviceId, IThingResultCallback<DeviceHardwareInfo> listener);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| deviceId | String | 是 | - | 设备 ID |
| listener | IThingResultCallback |
是 | - | 结果回调 |
DeviceHardwareInfo 数据模型
DeviceHardwareInfo 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| deviceId | String | 设备 ID |
| deviceInfo | Map<String, Object> | 设备信息集合 |
deviceInfo 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| chassisNo | String | 车架号 |
| activeTime | String | 设备激活时间 |
| productModel | String | 设备型号 |
示例代码
ThingODSDK.getIODDeviceInfoInstance().getDeviceHardwareInfo(devId, new IThingResultCallback<DeviceHardwareInfo>() {
@Override
public void onSuccess(DeviceHardwareInfo result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
接口说明
void publishDP(String deviceId, String dpCode, Object value, IThingDevice thingDevice, IResultCallback callback);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| deviceId | String | 是 | - | 设备 ID |
| dpCode | String | 是 | “blelock_switch” | 设备 DP Code(标识符) |
| value | Object | 是 | true | 设备 DP 值 |
| thingDevice | IThingDevice | 是 | ThingHomeSdk.newDeviceInstance(deviceBean.getDevId()) | - |
| callback | IResultCallback | 是 | - | 结果回调 |
返回参数
无。
示例代码
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() {
}
});
接口说明
<T> T getValueByDPCode(String deviceId, String dpCode, Class<T> valueType);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| deviceId | String | 是 | - | 设备 ID |
| dpCode | String | 是 | “blelock_switch” | 设备 DP Code(标识符) |
| valueType | Object | 是 | true | 设备 DP 值 |
返回参数
| 类型 | 示例 | 说明 |
|---|---|---|
| Boolean | true | 设备值 |
示例代码
boolean switchValue = ThingODSDK.getIODDeviceManagerInstance().getValueByDPCode(devId, "blelock_switch", Boolean.class);
接口说明
SchemaBean getSchemaByDPCode(String deviceId, String dpCode);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| deviceId | String | 是 | - | 设备 ID |
| dpCode | String | 是 | “blelock_switch” | 设备 DPCode(标识符) |
返回参数
SchemaBean
有关 SchemaBean 的详细说明,请参考 设备控制。
示例代码
ThingODSDK.getIODDeviceManagerInstance().getSchemaByDPCode(devId, "blelock_switch");
接口说明
boolean isDPCodeSupport(String deviceId, String dpCode);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| deviceId | String | 是 | - | 设备 ID |
| dpCode | String | 是 | “blelock_switch” | 设备 DP Code(标识符) |
返回参数
| 类型 | 示例 | 说明 |
|---|---|---|
| Boolean | true | true 表示支持此功能,false 表示不支持 |
示例代码
ThingODSDK.getIODDeviceManagerInstance().isDPCodeSupport(devId, "blelock_switch");
接口说明
void getStoreList(StoreGetReq storeGetReq, IThingResultCallback<List<StoreInfo>> callback);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| storeGetReq | StoreGetReq | 是 | - | - |
| callback | IThingResultCallback<List |
是 | - | 结果回调 |
StoreInfo 数据模型
| 字段 | 类型 | 描述 |
|---|---|---|
| id | String | 门店 ID |
| name | String | 门店名称 |
| address | String | 门店地址 |
| lon | Double | 门店经度 |
| lat | Double | 门店纬度 |
| source | String | 门店信息来源
|
| type | String | 地图 POI(points of interest)类型,例如电动车门店的取值为 store_electrocar |
| coordType | String | 坐标系类型
|
| distance | Double | 门店距当前位置距离,单位米 |
| favorite | Boolean | 是否收藏过门店 |
| info | ExtraInfo | 门店额外信息 |
ExtraInfo 数据模型
| 字段 | 类型 | 描述 |
|---|---|---|
| phone | String | 门店联系电话 |
| picture | String | 门店图片 |
StoreGetReq 数据模型
| 字段 | 类型 | 描述 |
|---|---|---|
| radius | Int | 请求门店范围半径,单位米 |
| max | Int | 本次请求返回的最高门店数量 |
| lon | Double | 当前位置经度 |
| lat | Double | 当前位置纬度 |
| coordType | String | 坐标系类型
|
| source | String | 门店信息来源
|
| type | String | 地图 POI 类型,例如电动车门店的取值为 store_electrocar |
示例代码
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);
}
});
接口说明
void searchStoreList(StoreSearchReq storeSearchReq, IThingResultCallback<List<StoreInfo>> callback);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| storeSearchReq | StoreSearchReq | 是 | - | - |
| callback | IThingResultCallback<List |
是 | - | 结果回调 |
StoreSearchReq 数据模型
| 字段 | 类型 | 描述 |
|---|---|---|
| radius | Int | 请求门店范围半径,单位米 |
| lon | Double | 当前位置经度 |
| lat | Double | 当前位置纬度 |
| coordType | String | 坐标系类型
|
| source | String | 门店信息来源
|
| type | String | 地图 POI 类型,例如电动车门店的取值为 store_electrocar |
| keyword | String | 搜索关键字 |
| pageIndex | Int | 分页请求页数 |
| pageSize | Int | 单页最大数量 |
示例代码
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);
}
});
提供轨迹上传、获取轨迹等功能。
接口说明
void getTrackStatistic(TrackStatisticReq trackStatisticReq, IThingResultCallback<TrackStatisticInfo> callback);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| trackStatisticReq | TrackStatisticReq | 是 | - | - |
| callback | IThingResultCallback |
是 | - | 结果回调 |
TrackStatisticReq 数据模型
| 字段 | 类型 | 描述 |
|---|---|---|
| deviceId | String | 设备 ID |
| startTime | Long | 骑行开始时间 |
| endTime | Long | 骑行结束时间 |
TrackStatisticInfo 数据模型
TrackStatisticInfo 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| deviceId | String | 设备 ID |
| list | List |
分段轨迹信息 |
TrackStatistic 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| totalTime | Long | 分段轨迹总时间 |
| startTime | Long | 分段轨迹开始时间 |
| averageSpeed | Double | 分段轨迹平均速度 |
| maxSpeed | Double | 分段轨迹最大速度 |
| totalMileage | Double | 分段轨迹总里程 |
| battery | Int | 电池信息 |
示例代码
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);
}
});
接口说明
void getTrackSegment(TrackSegmentReq trackSegmentReq, IThingResultCallback<TrackSegmentInfo> callback);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| trackSegmentReq | TrackSegmentReq | 是 | - | - |
| callback | IThingResultCallback |
是 | - | 结果回调 |
TrackSegmentReq 数据模型
| 字段 | 类型 | 描述 |
|---|---|---|
| deviceId | String | 设备 ID |
| lastId | Long | 用于查询下一组数据的轨迹 ID |
| lessMileage | Double | 最小距离,用于筛选数据 |
| pageSize | Int | 分页数据数量 |
TrackSegmentInfo 数据模型
TrackSegmentInfo 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| deviceId | String | 设备 ID |
| lastIdStr | Long | 用于查询下一组数据的轨迹 ID |
| areLastPage | Boolean | 是否是最后一页数据 |
| segmentList | List |
轨迹数据集合 |
TrackSegment 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| duration | Long | 轨迹持续时间,单位秒 |
| startTime | Long | 轨迹开始时间,单位秒 |
| endTime | Long | 轨迹结束时间,单位秒 |
| speed | Double | 速度,单位 km/h |
| mileage | Double | 路程,单位 km |
| battery | Int | 电量 |
| bufferFlag | Int | 轨迹标记
|
示例代码
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);
}
});
接口说明
void reportLocation(ReportLocationReq reportLocationReq, IThingResultCallback<Boolean> callback);
请求参数
| 参数 | 类型 | 是否必填 | 示例 | 说明 |
|---|---|---|---|---|
| reportLocationReq | ReportLocationReq | 是 | - | - |
| callback | IThingResultCallback |
是 | - | 结果回调 |
ReportLocationReq 数据模型
ReportLocationReq 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| deviceId | String | 设备 ID |
| productId | String | 产品 ID |
| payLoad | PayLoad | 定位信息 |
PayLoad 字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| accuracy | Float | 精度,单位米 |
| battery | Int | 电量 |
| lat | Double | 当前纬度 |
| lon | Double | 当前经度 |
| speed | Int | speed 的 DPCode 当前值 |
| mileage | Int | mileage_once 的 DPCode 当前值 |
| start | Boolean | 轨迹开始或者结束标识
|
示例代码
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);
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈