帮你快速理解、总结文档立即下载

远程控制

最近更新时间:2026-09-04 16:49:33
我的收藏
本文介绍腾讯云物联网(IoT)远程控制能力的端到端实现:应用端通过设备管理(TXIoTDeviceManager)的 sendCommand 下发命令、getProperties 查询设备当前属性;设备端通过物模型回调接收属性变更与行为调用并回复执行结果。完成集成与登录 SDK 后,您需确保目标设备已完成 设备绑定,取得 deviceId 后方可对其进行远程控制。
说明:
本文只覆盖基于物模型的远程控制(sendCommand / getProperties),不包含 TXIoTMonitorSessionTXIoTCallSession 等音视频能力。

前提条件

在远程控制设备前,请确保已完成以下准备工作:
已开通腾讯云物联网相关服务,并在控制台完成实例、应用和设备准备。可参见 开通服务
已在客户端工程中集成 IoT 应用端 SDK。
已通过业务后台生成登录签名,并调用 TXIoTEngine 完成登录。
设备已完成绑定或分享:仅当用户本人拥有该设备、或家庭成员拥有该设备、或用户被分享了该设备时,才具备远程控制的权限。若尚未完成设备绑定或分享,请先参考 设备绑定
如果尚未完成 SDK 集成与登录,请先参考 Android SDK 集成与登录iOS SDK 集成与登录

应用端下发控制

获取设备管理对象

设备管理能力通过 TXIoTEngine 获取。登录成功后,均可通过 TXIoTEngine 单例实例调用 getDeviceManager() 获取设备管理对象。
说明:
如果获取到的 TXIoTDeviceManagernull(iOS 为 nil),通常是因为 SDK 尚未登录或登录已过期,请先完成登录后再使用相关能力。

下发控制命令

sendCommand 用于向设备下发控制命令。命令内容是一个 JSON 字符串,成功回调返回服务端响应的 JSON 字符串。
注意:
jsonData 中的字段必须与产品物模型保持一致,否则会出现下发失败的问题。设备离线、设备不存在或当前用户无权限时,通过 onError 返回错误码与错误信息。
方法
说明
sendCommand
向设备下发命令,jsonData 为命令 JSON 字符串,原样发送给设备。
Android
iOS
String jsonData = "{\\"power_switch\\":1}";
deviceManager.sendCommand(deviceId, jsonData, new TXIoTEngineDef.TXIoTCallback<String>() {
@Override
public void onSuccess(String result) {
// 命令下发成功,result 为服务端返回的 JSON 字符串。
}

@Override
public void onError(TXIoTEngineDef.TXIoTErrorCode errorCode, String errorMessage) {
// 命令下发失败,请根据错误码和错误信息处理。
}
});
NSString *jsonData = @"{\\"power_switch\\":1}";
TXIoTCallback<NSString *> *commandCallback = [[TXIoTCallback alloc] init];
commandCallback.onSuccess = ^(NSString *result) {
// 命令下发成功,result 为服务端返回的 JSON 字符串。
};
commandCallback.onError = ^(TXIoTErrorCode errorCode, NSString *errorMessage) {
// 命令下发失败,请根据错误码和错误信息处理。
};
[deviceManager sendCommand:deviceId jsonData:jsonData callback:commandCallback];

查询设备属性

getProperties 用于查询设备当前的属性快照,返回属性 JSON 字符串。命令下发成功只代表云端已受理,设备实际状态需要通过本接口或设备侧上报确认。
方法
说明
getProperties
查询设备当前属性,返回属性 JSON 字符串,字段含义由产品物模型定义。
Android
iOS
deviceManager.getProperties(deviceId, new TXIoTEngineDef.TXIoTCallback<String>() {
@Override
public void onSuccess(String result) {
// 查询成功,result 为设备属性 JSON 字符串。
}

@Override
public void onError(TXIoTEngineDef.TXIoTErrorCode errorCode, String errorMessage) {
// 查询属性失败,请根据错误码和错误信息处理。
}
});
TXIoTCallback<NSString *> *propertyCallback = [[TXIoTCallback alloc] init];
propertyCallback.onSuccess = ^(NSString *result) {
// 查询成功,result 为设备属性 JSON 字符串。
};
propertyCallback.onError = ^(TXIoTErrorCode errorCode, NSString *errorMessage) {
// 查询属性失败,请根据错误码和错误信息处理。
};
[deviceManager getProperties:deviceId callback:propertyCallback];

设备端接收远程控制

应用端下发的控制命令最终由设备端通过物模型回调接收:属性类命令触发属性变更回调,行为类命令触发行为调用回调并可回复执行结果。设备端的物模型定义、数据类型与属性上报的完整说明参见 物模型通信