功能接口

更新时间: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) {

                }
            });

设备 DP 快捷操作

发送 DP 进行设备控制

接口说明

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() {

                    }
                });

通过 DPCode 获取 DP 值

接口说明

<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");

设备是否支持 DPCode 对应功能

接口说明

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 门店信息来源
  • tuya:涂鸦
  • baidu:百度
type String 地图 POI(points of interest)类型,例如电动车门店的取值为 store_electrocar
coordType String 坐标系类型
  • WGS84:谷歌地图
  • GCJ02:高德地图
  • BD09LL:百度地图
distance Double 门店距当前位置距离,单位米
favorite Boolean 是否收藏过门店
info ExtraInfo 门店额外信息

ExtraInfo 数据模型

字段 类型 描述
phone String 门店联系电话
picture String 门店图片

StoreGetReq 数据模型

字段 类型 描述
radius Int 请求门店范围半径,单位米
max Int 本次请求返回的最高门店数量
lon Double 当前位置经度
lat Double 当前位置纬度
coordType String 坐标系类型
  • WGS84:谷歌地图
  • GCJ02:高德地图
  • BD09LL:百度地图
source String 门店信息来源
  • tuya:涂鸦
  • baidu:百度
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 坐标系类型
  • WGS84:谷歌地图
  • GCJ02:高德地图
  • BD09LL:百度地图
source String 门店信息来源
  • tuya:涂鸦
  • baidu:百度
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 轨迹标记
    • 0 表示在线轨迹段
    • 1 表示离线轨迹段

示例代码

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 轨迹开始或者结束标识
    • true 表示轨迹开始
    • false 表示轨迹结束

示例代码

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);
              }
          });