设备SDK使用说明(Android)
IoT平台Android设备端SDK,基于IoT平台原生代码进行交叉编译,功能包括设备动态注册和IoT平台的上下行消息通信
1 使用入门
- IoT平台账号创建产品,用于注册设备。
- Manifest中添加IotServices,指定独立process
- Application中配置IotSDK, 由于iot服务在独立进程中,Application onCreate会执行两次,需在对应进程中执行如下代码
- 在应用的Service中实例化IotClient,以保证应用退出到后台可以继续保持长连接
2 具体用法
IotSDK | 备注 |
void setLog(boolean isDebug) | 开启日志 |
void setupRegisterConfig(RegisterConfig registerConfig) | 设置设备注册配置 |
RegisterConfig.Builder | 备注 |
setUrl(String url) | 设备注册地址 |
setProductKey(String productKey) | 产品认证信息之产品key |
setProductSecret(String productSecret) | 产品认证信息之密钥 |
setDeviceIdType(String deviceIdType) | 设备唯一标识符类型,可自定义如uid |
setDeviceIdValues(ArrayList<String> deviceIdValues) | 设备唯一标识符值集(有多个时,如mac列表) |
IotClient | 备注 |
IotClient(Context context, String url) | 构造方法 |
IotClient(Context context, jString url, DeviceAuth deviceAuth) | 构造方法 |
void setCallback(IotCallback iotCallback) | 设置回调 |
void connect() | MQTT建立连接 |
boolean isConnected() | 是否连接 |
void close() | 关闭MQTT连接并释放资源 |
void setPropertyGetCallback(OnTslDownCallback onTslDownCallback) | 设置获取属性回调 |
void setPropertySetCallback(OnTslDownCallback onTslDownCallback) | 设置设置属性回调 |
void setServiceCallback(OnTslDownCallback onTslDownCallback) | 设置服务调用回调 |
void subscribeCustom(String topic, OnCustomTopicCallback onCustomTopicCallback) | 订阅自定义主题 |
void postEvent(String method, IotUpPO params) | 事件上报 |
void postProperty(String method, IotUpPO params, boolean isPostNow) | 属性上报 |
<T> void getProperty(String method, IotUpPO params, OnTslUpCallback<T> callback) | 上行属性获取 |
<T> void callService(String method, IotUpPO params, OnTslUpCallback<T> callback) | 上行服务调用 |
void callService(String method, IotUpPO params) | 上行服务调用 |
void callService(String method) | 上行服务调用 |
void publishCustom(String topic, IotUpPO params) | 发布自定义主题 |
void setDeviceAuth(DeviceAuth deviceAuth) | 自定义设备三元组 |
void setRetryConfig(RetryConfig retryConfig) | 自定义失败重试机制 |
RetryConfig.Builder | 备注 |
setRetryCount(int retryCount) | 设置失败重试次数(-1表示无限重试),默认为-1 |
setDelayMaxSecond(int delayMaxSecond) | 设置最大的重试时间间隔,默认为60s |
setDelayBaseNum(int delayBaseNum) | 设置重试时间间隔的底数,默认为2,即时间间隔为2^n,n为当前重试次数 |
3 更多说明
- 设备连接到iot需要先注册,第一种是通过配置RegisterConfig进行注册,另一种途径是交由业务的服务端进行注册来获取设备三元组,再通过setupDeviceAuth()配置。
- 失败重试是指Iot注册或者连接过程中失败的重试,IotSDK使用指数退避算法进行重试,具体的重试配置由应用业务决定
- 执行Iot连接会启动一个Iot进程Service。Iot进程只负责Iot通信,不处理保活,如果主进程销毁, Iot进程也会销毁,应用根据需要对主进程进行保活
- Iot上行下行通信中的请求参数params是key-value形式,符合TSL物模型,因此不可以直接传递List数据,需要包装成key-value形式
4 使用示例
sample