更新时间:2022-02-24 GMT+08:00
设备服务数据上报
接口功能
当直连设备(网关)有数据需要上报或者非直连设备上报数据到网关时,网关需要调用设备服务数据上报接口将数据上报到物联网平台。
接口描述
1 |
public static boolean dataReport(int cookie, String requstId, String deviceId, String serviceId, String serviceProperties);
|
接口所属类
DataTransService
参数说明
字段 |
必选/可选 |
类型 |
描述 |
---|---|---|---|
cookie |
可选 |
int |
Cookie有效值1-65535。 |
requstId |
必选 |
String |
请求ID,匹配之前平台下发的服务命令。可以从设备命令接收的广播中获取requestId。
|
deviceId |
必选 |
String |
设备ID。 |
serviceId |
必选 |
String |
服务ID。 |
serviceProperties |
必选 |
String |
服务属性。 |
接口返回值
返回值 |
描述 |
---|---|
true |
成功。 |
false |
失败。 |
说明:
此返回值是调用接口的同步返回结果,返回true只是说明接口调用成功,并不说明服务数据上报成功,数据上报成功需要收到TOPIC_DATA_REPORT_RSP广播。
返回结果
广播名称 |
广播参数 |
成员 |
描述 |
---|---|---|---|
TOPIC_DATA_REPORT_RSP |
IotaMessage (使用intent.getSerializableExtra(DataTransService.DATATRANS_BROADCAST_IE_IOTAMSG)方法获取) |
DATATRANS_IE_RESULT |
数据上报结果。 |
DATATRANS_IE_COOKIE |
Cookie有效值为1-65535。 |
示例
用户根据Profile格式使用Json组件拼装服务属性的内容(serviceProperties)。
1 |
DataTransService.dataReport(1211, NULL, "xxxx_xxxx_xxxx_xxxx", "DoorWindow", “{\“status\”:\“OPEN\”}”);
|
数据上报结果接收:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//开发者注册广播接收器对设备服务数据上报结果进行相应的的处理
BroadcastReceiver mReportDataRsp;
mReportDataRsp = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//Do Something
IotaMessage iotaMsg = (IotaMessage)intent.getSerializableExtra(DataTransService. DATATRANS_BROADCAST_IE_IOTAMSG);
int cookie = iotaMsg.getUint(DataTransService.DATATRANS_IE_COOKIE, 0);
int ret = iotaMsg.getUint(DataTransService.DATATRANS_IE_RESULT, 0);
return;
}
};
mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
IntentFilter filterReportData
= new IntentFilter(DataTransService.TOPIC_DATA_REPORT_RSP);
mLocalBroadcastManager.registerReceiver(mReportDataRsp, filterReportData);
|
父主题: 接口列表