更新时间:2024-06-25 10:09:23下载pdf
出行 SDK 依赖于涂鸦智能 智能生活 App SDK,基于此基础上进行拓展开发。因此,接入出行 SDK 前,请先实现智能生活 App SDK 设备控制 功能。
类名 | 说明 |
---|---|
IODDeviceInfo(ODDeviceInfo) | 户外设备信息获取,包括设备的高清图片、固件信息等 |
IODDeviceDPManager(ODDeviceDPManager) | 便捷操作设备 DP,包括下发 DP(支持高级语法)、判断设备是否支持 DP 等 |
IODStore(ODStore) | 线下门店接口,包括获取门店、搜索门店等 |
IODTrack(ODTrack) | 骑行轨迹接口,包括上传轨迹、获取轨迹等 |
智能生活 App SDK 默认提供的设备图片为缩略图。但您可通过以下接口获取涂鸦开发者平台配置的 800x800 设备高清图片,同时也可获取设备固件信息。
接口说明
void getDeviceIcon(String devIds, final ITuyaResultCallback<ProductMap> listener)
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
devIds | String | 是 | “id1,id2,id3” | 设备 ID 字符串数组 |
listener | ITuyaResultCallback |
是 | - | 结果回调 |
ProductMap
数据模型
ProductMap
字段说明
字段 | 类型 | 描述 |
---|---|---|
productIconVOMap | Map<String, ProductIcon> | 图片信息集合 |
ProductIcon
字段说明
字段 | 类型 | 描述 |
---|---|---|
icon | String | 设备 800x800 大图 |
smallIcon | String | 设备缩略图 |
示例代码
TuyaODSDK.getIODDeviceInfo().getDeviceIcon("id1,id2,id3", new ITuyaResultCallback<ProductMap>() {
@Override
public void onSuccess(ProductMap result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
接口说明
void getDeviceHardwareInfo(String deviceId, ITuyaResultCallback<DeviceHardwareInfo> listener);
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
deviceId | String | 是 | - | 设备 ID |
listener | ITuyaResultCallback |
是 | - | 结果回调 |
DeviceHardwareInfo
数据模型
DeviceHardwareInfo
字段说明
字段 | 类型 | 描述 |
---|---|---|
deviceId | String | 设备 ID |
deviceInfo | Map<String, Object> | 设备信息集合 |
deviceInfo
字段说明
字段 | 类型 | 描述 |
---|---|---|
chassisNo | String | 车架号 |
activeTime | String | 设备激活时间 |
productModel | String | 设备型号 |
示例代码
TuyaODSDK.getIODDeviceInfo().getDeviceHardwareInfo(devId, new ITuyaResultCallback<DeviceHardwareInfo>() {
@Override
public void onSuccess(DeviceHardwareInfo result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
接口说明
void publishDP(String deviceId, String dpCode, Object value, ITuyaDevice tuyaDevice, IResultCallback callback)
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
deviceId | String | 是 | - | 设备 ID |
dpCode | String | 是 | “blelock_switch” | 设备 DPCode(标识符) |
value | Object | 是 | true | 设备 DP 值 |
tuyaDevice | ITuyaDevice | 是 | TuyaHomeSdk.newDeviceInstance(deviceBean.getDevId()) | - |
callback | IResultCallback | 是 | - | 结果回调 |
返回参数
无。
示例代码
ITuyaDevice tuyaDevice =TuyaHomeSdk.newDeviceInstance(deviceBean.getDevId());
TuyaODSDK.getIODDeviceManagerInstance().publishDP(deviceBean.getDevId(), "blelock_switch", true, tuyaDevice, 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” | 设备 DPCode(标识符) |
valueType | Object | 是 | true | 设备 DP 值 |
返回参数
类型 | 示例 | 说明 |
---|---|---|
Boolean | true | 设备值 |
示例代码
boolean switchValue = TuyaODSDK.getIODDeviceManagerInstance().getValueByDPCode(devId, "blelock_switch", Boolean.class);
接口说明
SchemaBean getSchemaByDPCode(String deviceId, String dpCode);
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
deviceId | String | 是 | - | 设备 ID |
dpCode | String | 是 | “blelock_switch” | 设备 DPCode(标识符) |
返回参数
SchemaBean
有关 SchemaBean
的详细说明,请参考参考智能生活 设备控制。
示例代码
TuyaODSDK.getIODDeviceManagerInstance().getSchemaByDPCode(devId, "blelock_switch");
接口说明
boolean isDPCodeSupport(String deviceId, String dpCode);
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
deviceId | String | 是 | - | 设备 ID |
dpCode | String | 是 | “blelock_switch” | 设备 DPCode(标识符) |
返回参数
类型 | 示例 | 说明 |
---|---|---|
Boolean | true | true 表示支持此功能,false 表示不支持 |
示例代码
TuyaODSDK.getIODDeviceManagerInstance().isDPCodeSupport(devId, "blelock_switch");
接口说明
void getStoreList(StoreGetReq storeGetReq, ITuyaResultCallback<List<StoreInfo>> callback);
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
storeGetReq | StoreGetReq | 是 | - | - |
callback | ITuyaResultCallback<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().setLon(longitude).setLat(latitude).setRadius(5).setSource(StoreInfoConstants.Source.TUYA.value).setType(StoreInfoConstants.STORE_TYPE.ELECTRONIC.value);
TuyaODSDK.getIODStoreInstance().getStoreList(storeGetReq, new ITuyaResultCallback<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, ITuyaResultCallback<List<StoreInfo>> callback);
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
storeGetReq | StoreSearchReq | 是 | - | - |
callback | ITuyaResultCallback<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.TUYA.value).setType(StoreInfoConstants.STORE_TYPE.ELECTRONIC.value).setKeyword("car");
TuyaODSDK.getIODStoreInstance().searchStoreList(storeSearchReq, new ITuyaResultCallback<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, ITuyaResultCallback<TrackStatisticInfo> callback);
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
trackStatisticReq | TrackStatisticReq | 是 | - | - |
callback | ITuyaResultCallback |
是 | - | 结果回调 |
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);
TuyaODSDK.getIODTrackInstance().getTrackStatistic(trackStatisticReq, new ITuyaResultCallback<TrackStatisticInfo>() {
@Override
public void onSuccess(TrackStatisticInfo result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast(errorMessage);
}
});
接口说明
void getTrackSegment(TrackSegmentReq trackSegmentReq, ITuyaResultCallback<TrackSegmentInfo> callback);
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
trackSegmentReq | TrackSegmentReq | 是 | - | - |
callback | ITuyaResultCallback |
是 | - | 结果回调 |
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 | 电量 |
示例代码
TrackSegmentReq trackSegmentReq = new TrackSegmentReq().setDeviceId(deviceId).setLastId(-1).setLessMileage(1).setPageSize(10);
TuyaODSDK.getIODTrackInstance().getTrackSegment(trackSegmentReq, new ITuyaResultCallback<TrackSegmentInfo>() {
@Override
public void onSuccess(TrackSegmentInfo result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast(errorMessage);
}
});
接口说明
void reportLocation(ReportLocationReq reportLocationReq, ITuyaResultCallback<Boolean> callback);
请求参数
参数 | 类型 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|
reportLocationReq | ReportLocationReq | 是 | - | - |
callback | ITuyaResultCallback |
是 | - | 结果回调 |
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 | 轨迹开始或者结束标识,true 表示轨迹开始,false 表示轨迹结束 |
示例代码
double longitude = 121.355359;
double latitude = 31.217979;
ReportLocationReq.PayLoad payLoad = new ReportLocationReq.PayLoad().setLongitude(longitude).setLatitude(latitude).setBattery(50).setMileage(10).setSpeed(20).setStart(true);
ReportLocationReq reportLocationReq = new ReportLocationReq().setDeviceId(deviceId).setProductId(productId).setPayLoad(payLoad);
TuyaODSDK.getIODTrackInstance().reportLocation(reportLocationReq, new ITuyaResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
showToast("success");
}
@Override
public void onError(String errorCode, String errorMessage) {
showToast(errorMessage);
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈