- 产品介绍
- 价格说明
- 快速入门
- 开发指南
- 用户指南
- 最佳实践
- API参考
-
SDK参考
- SDK介绍(联通用户专用)
- 应用侧JAVA SDK API参考(联通用户专用)
- 应用侧Python SDK API参考(联通用户专用)
- 设备侧Agent Lite API参考(C)(联通用户专用)
- 设备侧Agent Lite API参考(Android)(联通用户专用)
- 设备侧Agent Lite API参考(Java)(联通用户专用)
-
常见问题
- 热门问题(联通用户专用)
-
方案咨询(联通用户专用)
- 开发中心、设备接入和设备管理的差异是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 如何成为华为IoT生态合作伙伴?
- 物联网平台支持哪些接入方式和协议?
- 华为是否提供模组/硬件终端/应用软件等?
- 设备接入模拟器HubSimulator是否能在设备管理使用?
- 设备接入服务如何获取设备数据?
- 物联网平台的应用和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用和设备有消息流控吗?
- 开发中心单个应用允许接入设备数是多少?
- 数据在物联网平台的保存时间是多久?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
-
设备集成(联通用户专用)
- 如何获取设备和应用对接地址?
- 如何下载LiteOS IDE/IoT Studio?
- 物联网平台允许一个IMEI号注册多个设备吗?
- 如何设置设备名称?
- IoT设备如何激活?
- 物联网平台如何切换设备的在线/离线状态?
- 通过网关接入的子设备,平台如何识别是哪一个设备?
- deviceId、nodeId和IMEI有什么对应关系?
- Agent Lite和Agent Tiny有什么区别?
- 使用Agent Lite接入的网关设备gwbindinfo.json文件丢失如何处理?
- 运行Agent Lite Java Demo报UnsatisfiedLinkError错误怎么处理?
- 设备如何发送文件至物联网平台?
- 开发中心模拟设备如何上报负数?
- 开发中心支持哪几种省电模式?
- 开发中心支持数据转发吗?
- 开发中心没有设备分组和批量添加设备,怎么办?
- 如何检测NB网络信号?
- NB模组附着网络失败如何处理?
- NB模组绑定设备失败怎么办?
- NB模组无法正常上报数据怎么办?
- NB设备上报数据为字符串时如何转换为二进制编码?
- NB设备接入时,出现513错误?
- 为什么执行AT+CUFN=1会返回error?
- 平台向NB-IoT设备缓存下发命令,为什么设备一直收到同一条控制命令?
- AT+CGDCONT=1, CTNB是什么?
- NB-IoT设备如何选择PSM、DRX、eDRX模式?
- 应用集成(联通用户专用)
-
订阅推送(联通用户专用)
- 调用订阅接口时,回调地址如何获取?
- 应用服务器如何收到命令状态变化的通知?
- 如何获取证书?
- 回调地址可以使用域名吗?
- 订阅后消息推送失败,例如提示503如何处理?
- 应用服务器收到数据,但是平台显示推送失败?
- 应用服务器只有内网地址,能否订阅成功?
- 调用订阅接口时,提示回调地址不合法?
- 物联网平台只支持HTTPS的回调地址吗?
- 回调地址可以修改吗?
- 推送证书失效怎么处理?
- 调用删除单个订阅接口时,subscriptionId如何获取?
- 设备数据变化通知和批量设备数据变化通知的区别是什么?
- 应用服务器如何获取物联网平台推送消息时使用的地址?
- 物联网平台订阅推送是否具有重推机制?
- 为什么设备上报一条数据后应用服务器会收到多条推送?
- 在同一个应用下,平台可以将不同设备上报的数据,推送到两个服务器吗?
- NB-IoT设备已订阅消息确认和命令响应通知,为何应用服务器收不到推送消息?
- 数据上报(联通用户专用)
- 命令下发(联通用户专用)
- 产品模型/Profile(联通用户专用)
- 编解码插件(联通用户专用)
- 软/固件升级(联通用户专用)
- 文档下载
- 通用参考
链接复制成功!
使用Java API Demo调测(联通用户专用)
本文档基于调用API接口的代码样例(Java)进行指导,接口信息详见API参考文档。
准备Java开发环境
本小节以Windows操作系统为例,介绍安装JDK1.8以及安装Eclipse的方法,如果您使用其它类型的开发环境,请根据自己的需要完成部署。
- 进入Java JDK官网,下载JDK1.8版本(比如:jdk-8u161-windows-x64.exe),双击进行安装。
- 配置Java环境变量。
- 右键单击“计算机”,选择“属性”。
- 点击“高级系统设置”。
- 点击“环境变量”。
- 配置系统变量。需配置3个变量:JAVA_HOME、Path、CLASSPATH(不区分大小写)。若变量名已经存在,则点击“编辑”;若变量名不存在,则点击“新建”。一般Path变量存在,JAVA_HOME变量和CLASSPATH变量需要新增。
JAVA_HOME指明JDK安装路径,配置示例:C:\ProgramFiles\Java\jdk1.8.0_45。此路径下包括lib,bin等文件夹。
Path变量使系统可以在任何路径下识别Java命令。如果Path变量已经存在,则需在变量值最后添加路径,配置示例:;C:\Program Files\Java\jdk1.8.0_45\bin;C:\Program Files\Java\jdk1.8.0_45\jre\bin。
两个路径之间需要使用“;”分割,分号是英文半角。
CLASSPATH为Java加载类(class或lib)路径,只有配置CLASSPATH,Java命令才能识别。配置示例:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。
注:路径以“.”开始,表示当前路径。
- 选择“开始 > 运行”,输入“cmd”,执行命令:java -version、java、javac。如果命令可以执行,则说明环境变量配置成功。
- 右键单击“计算机”,选择“属性”。
- 前往Eclipse官网,下载Eclipse安装包,直接解压缩到本地即可使用。
导入Demo工程
- 运行Eclipse,选择“File > New > Project”,在弹出的对话框中选择“Java Project”,点击“Next”。
- 填写“Project name”,JRE版本选择“JavaSE-1.8”,点击“Finish”。
- 下载API JAVA Demo,并解压。
- 完成解压后,拷贝(Ctrl+C)“Open source components”和“src”文件夹。
- 打开在Eclipse创建的工程,点击选中工程名称,将拷贝的文件粘贴(Ctrl+V)到该工程目录下。
粘贴完成后,“src”目录下的文件存在错误。
- 右键单击工程名称,选择“Properties > Java Build Path > Libraries > Add JARs”,在弹出框中选中“Open source components”目录下的所有jar文件,点击“OK”。
导入jar文件之后,“src”目录下文件的错误消失。
应用接入
应用服务器需要调用物联网平台的“鉴权”接口,完成应用服务器和物联网平台的对接,接口信息详见API参考文档。
本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解“鉴权”接口的调用。
- 在eclipse中,选择“src > com.utils > Constant.java”,修改BASE_URL、APPID、SECRET,然后保存(Ctrl+S)。
配置说明如下:
- BASE_URL:填写应用对接地址/端口号。
- APPID:填写创建应用或项目后获取的应用ID。
- SECRET:填写创建应用或项目后获取的应用密钥。
- 在eclipse中,选择“src > com.huawei.service.appAccessSecurity”,右键单击“Authentication.java”,选择“Run As > Java Application” 。
- 在控制台查看响应消息的打印日志,如果获得accessToken,说明鉴权成功。
accessToken请妥善保存,以便于在调用其它接口时使用。
如果没有得到正确的响应,请检查全局常量是否修改正确,并排除网络问题。
订阅数据
应用服务器通过调用物联网平台的“订阅平台业务数据”接口,告知物联网平台消息推送的地址和通知类型,比如设备业务数据、设备告警等,接口信息详见API参考文档。
在订阅场景下,物联网平台是客户端,应用服务器是服务端,物联网平台调用应用服务器的接口,并向应用服务器推送消息。在Java API Demo中,使用HTTP协议接收物联网平台的推送消息,不需要在物联网平台加载CA证书。
本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解“订阅平台业务数据”接口的调用。
- 在eclipse中,选择“src > com.huawei.utils > Constant.java”,修改“CALLBACK_BASE_URL”,填写回调的IP地址和端口号。
同一个应用下,所有订阅类型的回调地址的IP和端口必须一致。回调地址的合法性和连通性可以通过开发中心的“订阅调试”功能进行检测。
- 在eclipse中,选择“src > com.huawei.service.subscribtionManagement”,右键单击“SubscribeServiceNotification.java”,选择“Run As > Java Application”。
- 在控制台查看响应消息的打印日志,如果所有类型的订阅均获得“201 Created”响应,则说明订阅成功。
如需修改订阅的回调地址,在“Constants.java”类中修改“CALLBACK_BASE_URL”的值,再次运行
“SubscribeServiceNotification.java”即可,新的回调地址会覆盖原来的回调地址。
注册设备
应用服务器通过调用物联网平台的“注册直连设备”接口,在物联网平台添加设备,接口信息详见API参考文档。
本文档基于调用API接口的代码样例(Java)进行指导,帮助开发者理解“注册直连设备”接口的调用。
- 在eclipse中,选择“src > com.huawei.service.deviceManagement > RegisterDirectConnectedDevice.java ”,修改“verifyCode”、“nodeId”、“timeout”、“manufacturerId”、“manufacturerName”、“deviceType”、“model”、“protocolType”的取值。
配置说明如下:
- “verifyCode/nodeId”需要与真实设备的唯一标识符(IMEI或mac)一致。如果使用的是设备模拟器,则“verifyCode”可以是数字、字母和特殊符号的组合,开发者可自行定义,但不可以与其它设备的verifyCode重复。
- “timeout”单位是“秒”,“timeout”的取值作用如下:
- timeout = 0,注册的设备不会过期。
- timeout > 0,真实设备必须在设置的时间内上线,否则注册的设备会因为过期而被物联网平台删除。如果不携带timeout,则默认过期时间是180秒。
- 在设备绑定成功后,“timeout”不再起作用,注册的设备不会过期。
- “manufacturerId”、“manufacturerName”、“deviceType”、“model”、“protocolType”需要与对应的Profile保持一致。
- 右键单击“RegisterDirectConnectedDevice.java”,选择“Run As > Java Application ” 。
- 在控制台查看响应消息的打印日志,如果获得“deviceId”,则说明注册成功。
可以在开发中心的“产品 > 设备管理”中,查看新注册的设备是否已经显示。此时,注册设备只有设备ID(deviceId)信息。
其他接口
请参考API参考文档完成其他接口业务的开发。
单步调测
为了更直观地查看应用程序发送的消息及物联网平台的响应消息,以下方法使用了Eclipse的断点调试方法。
- 在最终发出http/https消息的代码处设置断点。例如:在样例代码“HttpsUtil.java”中的“executeHttpRequest”方法设置3个断点(请根据您代码的实际情况打断点)。
- 右键单击需要调测的类,例如:“Authentication.java(根据您建立的工程类型进行选择)”,选择“Debug As > Java Application”。
- 当程序在断点位置停止运行后,点击“Step Over”进行单步调试。此时可以在“Variables”窗口查看相应变量的内容,包括发送的消息及物联网平台的响应消息。
- 在“Variables”窗口中展开“request”变量,查看请求消息的内容。
- 选中“request”变量时,可以在下方内容展示区看到应用程序发送请求的URL;在“entity”中可以看到发送的消息内容。
- 应用ID(appId)和应用密钥(secret)在“content”字段内,使用十进制的ASCII码表示,需要对照ASCII码表将其转化为字母和符号。
- 选中“request”变量时,可以在下方内容展示区看到应用程序发送请求的URL;在“entity”中可以看到发送的消息内容。
- 在“Variables”窗口中展开“response”变量,查看响应消息的内容。
在代码样例中,“Authentication.java”之外的类均会先调用鉴权接口。因此,在对“Authentication.java”之外的类进行单步调测时,需要程序第二次运行到设置断点的位置时,再查看变量内容。