批量获取设备状态
public class BatchGetDeviceStateTest {
public static void main(String[] args) {
DefaultAcsClient client = BaseTest.init();
BatchGetDeviceStateRequest request = new BatchGetDeviceStateRequest();
request.setProductKey("******");
List<String> devices = new ArrayList<String>();
devices.add("test_a");
devices.add("test_b");
devices.add("test_c");
request.setDeviceNames(devices);
BatchGetDeviceStateResponse response = null;
try {
response = client.getAcsResponse(request);
} catch (ClientException e) {
e.printStackTrace();
}
if(response != null){
System.out.println(ToStringBuilder.reflectionToString(response, ToStringStyle.SHORT_PREFIX_STYLE));
Iterator<DeviceStatus> iterator = response.getDeviceStatusList().iterator();
while(iterator.hasNext()){
DeviceStatus next = iterator.next();
System.out.println(ToStringBuilder.reflectionToString(next, ToStringStyle.SHORT_PREFIX_STYLE));
}
}
}
}
打印结果:
BatchGetDeviceStateResponse[requestId=3346E749-1B19-4F5D-88AF-C73692F14214,success=true,errorMessage=<null>,deviceStatusList=[com.aliyuncs.iot.model.v20170420.BatchGetDeviceStateResponse$DeviceStatus@7486a1f7, com.aliyuncs.iot.model.v20170420.BatchGetDeviceStateResponse$DeviceStatus@32f39ae5, com.aliyuncs.iot.model.v20170420.BatchGetDeviceStateResponse$DeviceStatus@173e4a85]]
BatchGetDeviceStateResponse.DeviceStatus[deviceId=******,deviceName=test_a,status=UNACTIVE,asAddress=<null>,lastOnlineTime=]
BatchGetDeviceStateResponse.DeviceStatus[deviceId=******,deviceName=test_b,status=UNACTIVE,asAddress=<null>,lastOnlineTime=]
BatchGetDeviceStateResponse.DeviceStatus[deviceId=******,deviceName=test_c,status=UNACTIVE,asAddress=<null>,lastOnlineTime=]
查询设备还是通过设备名称,这边批量查询就通过列表的方式,类似于批量申请设备的操作。
返回的设备状态对象DeviceStatus,关键属性有status设备状态(ONLINE 在线, OFFLINE 离线, UNACTIVE 未激活)。