# 3. Android-SDK 使用指南

# 3.1 说明

MSmartSDK支持美的家电配网的精简版SDK,仅提供配网功能。设备绑定,控制等需要通过open cloud接入。

# 3.2 接入流程

操作步骤 (1)复制SDK的aar包到工程目录libs下。

(2)在build.gradle中增加下列配置

repositories {
   flatDir {
     dirs 'libs'
   }
 }
 dependencies {
   implementation(name: 'xxx.aar', ext: 'aar')
 }

备注:xxx 需要替换为对应的名称

(3)添加依赖库,build.gradle 中dependencies 段增加

implementation "com.google.code.gson:gson:2.8.0"
implementation 'androidx.annotation:annotation:1.0.0'
implementation 'com.madgag.spongycastle:core:1.54.0.0'
implementation 'com.madgag.spongycastle:prov:1.54.0.0'
implementation 'com.madgag.spongycastle:pkix:1.54.0.0'
implementation 'com.madgag.spongycastle:pg:1.54.0.0'

(4)权限申请,AndroidManifest.xml中增加权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

(5)初始化相关:调用MSmartSDK的初始化方法初始化

MSInterface.getInstance().initSDK(Context context, WorkMode mode, MSConfig config)

示例:

MSConfig config = new MSConfig();
config.serverHost ="https://api-prod.smartmidea.net";
config.enableLog = true; //MSmartSDK日志开关
config.clientId="xxxxxx";
config.clientSecret="xxxxxx";
MSInterface.getInstance().initSDK(context, MSInterface.WorkMode.INLAND_OPEN, config);

示例参数说明:

workMode:开放平台采用INLAND_OPEN, MSInterface.WorkMode.INLAND_OPEN

config.serverHost: 服务器地址

config.enableLog: 是否开启log,调式时为true,发布时需要设置为false

config.clientId: 客户端id,由云端分发

config.clientSecret:客户端秘钥,有云端分发

(6)设置AccessToken

MSInterface.getInstance().setAccessToken("accessToken");

示例参数说明:

a.第三方一般需要先通过第三方APP调用第三方服务器,第三方服务器再调用美的服务器获取令牌。

b.第三方APP获取到accessToken后再调用美的SDK的接口将accessToken设置到美的SDK。

(7) 设置AccessToken刷新代理

MSInterface.getInstance().setTokenRefreshDelegate(new MSTokenRefresh() {
   @Override
   public boolean refreshToken() {
     //接入MSmartSDK的宿主App实现AccessToken的刷新
     ... ...
   
     //刷新后更新AccessToken
     MSInterface.getInstance().setAccessToken(accessToken);
     //刷新成功后返回true,否则返回false
     return true;
   }
 });

# 3.3 AP配网

示例:

MSDeviceApConfigParams params = new MSDeviceApConfigParams(Context context);
params.setDeviceSSID(deviceSSID);  //"midea_fd_0002"
params.setRouterBSSID(routerBSSID); //"00:9a:cd:8d:fe:0c"
params.setRouterSSID(routerSSID); //"APP_TEST2"
params.setRouterPassword(routerPassword); //"1234567890"
params.setRouterSecurityParams(routerSecurity); //"[WPA2-PSK-CCMP][RSN-PSK-CCMP][ESS][WPS]"
params.setFrequency(frequency);
params.setDeviceSecurityParams("WPA/PSK");
params.setDevicePassword("12345678");
params.setNeedCheckPassword(true);
params.setAdsId(adsid);
params.setRegionId(regionId);
params.setCountryChannelList(channels);
params.setTimeZone(timeZone);
params.setCountryCode(countryCode);
params.setFunctionType(functionType);
params.setModuleServerDomain(moduleDomain);
params.setModuleServerPort(modulePort);

MSDeviceConfigManager.getInstance().startConfigureDevice(params, MSDeviceConfigType.MSDeviceConfigAP, new MSProgressCallback<MSDevice, MSDeviceConfigStep>() {
    @Override
    public void onProgressUpdate(MSDeviceConfigStep deviceConfigStep) {
        LogUtils.i("配网进度:" +String.valueOf(deviceConfigStep));
    }

    @Override
    public void onComplete(MSDevice data) {
     LogUtils.i("配网成功:"+data);
     bindDevice(data.getDeviceID(),data.getVerificationCode(),data.getDeviceType(),data.getProtocolVersion());//配网成功,调用云端绑定接口
    }

    @Override
    public void onError(MSErrorMessage errMsg) {
        LogUtils.d("配网失败:"+errMsg.getErrorMessage());
    }
});

示例参数说明:

deviceSSID:设备启动热点时的AP热点SSID,扫描周边符合格式的wifi获取

routerBSSID:家庭路由的BSSID,系统属性获取

routerSSID:家庭路由的SSID,系统属性获取

routerPassword:家庭网络密码,用户手动填入

routerSecurity:家庭网络加密方式,系统属性获取

frequency:家庭网络频率,系统属性获取

adsid:网络接入网关id,(云云对接,从云端获取)

regionId:系统时区ID,获取当前时区代码从云端换区时区ID(1)

channels:信道列表,以用户当前国家向云端询问获取(信道列表代码)

timeZone:当前时区(MSTimeZone.EAST_8)

countryCode:国家代码(CN)

functionType:功能集 MSFunctionType.INTERNEL 或 MSFunctionType. OVERSEAS(国内:MSFunctionType.INTERNEL)

moduleDomain:模块端服务器地址(iotlab.midea.com.cn)

modulePort:模块端服务器端口(28443)

信道列表代码:

public static  MSCountryChannel[] getChannels(){
     MSCountryChannel[] channels = new  MSCountryChannel[4];
    channels[0] = new  MSCountryChannel((byte)1,(byte)13,(byte)27,false);
    channels[1] = new  MSCountryChannel((byte)36,(byte)4,(byte)23,false);
    channels[2] = new  MSCountryChannel((byte)52,(byte)4,(byte)23,true);
    channels[3] = new  MSCountryChannel((byte)149,(byte)5,(byte)27,false);
    return channels;
}

配网成功后调用:

​SDK配网成功后回调返回:MideaDevice。其中MideaDevice:protocolVersion:设备协议版本号 ,deviceType:设备品类 。此参数用于云端安全校验绑定,在绑定接口中为非必填参数。

需要先调通服务器的绑定接口,编写bindDevice(String deviceId,String verificationCode )方法或安全绑定接口bindDevice(String deviceId,String verficationCode,String deviceType,String protocolVersion)方法,详情可查询云端绑定接口

备注:AP配网特殊错误处理方式:

第2步,第3步,第10步失败后,可以引导用户手动操作。用户手动操作完成后回到配网界面调用一次下面的方法,继续配网。

MSDeviceConfigManager.getInstance().resumeConfigureDevice()

# 3.4 BLE配网

扫描蓝牙设备

MSBLEDeviceManager.getInstance().startScan(type, timeOut, new MSBleScanCallback() {
    @Override
    public void onComplete(MSBleScanInfo data) {
       if(!isContain(data)){
          Map<String,MSBleScanInfo> map = new HashMap<>();
          map.put(data.getMac(),data);
          datas.add(map);
       }
       myAdapter.notifyDataSetChanged();
    }

    @Override
    public void onError(MSErrorMessage errMsg) {
    }

}

扫描参数说明:

type:扫描类型

​ MSBLEModuleType.ALL 所有蓝牙设备

​ MSBLEModuleType.MS MSmart协议蓝牙设备

​ MSBLEModuleType. MS_SingleModule MSmart协议单蓝牙设备

​ MSBLEModuleType. MS_SingleModule MSmart协议蓝牙+wifi设备

timeOut:扫描超时时间,单位:秒

返回说明: MSBleScanInfo:设备信息类 isConfigable():设备是否处于可配网状态,为true才能进入配网 isAuth():是否已经确权,已确权的设备不需要后确权(带WiFi的模式建议使用云云对接查询,纯蓝牙模组,可以根据这个判断设备是否需要进入后确权页面)

发起蓝牙配网

MSDeviceBleConfigParams params = new MSDeviceBleConfigParams();
params.setContext(context);
params.setMsBleScanInfo(msBleScanInfo);
params.setRouterSSID(routerSSID);
params.setRouterPassword(routerPassword);
params.setRouterSecurityParams(routerSecurity);
arams.setFrequency(frequency);
params.setDeviceSecurityParams("WPA/PSK");
params.setDevicePassword("12345678");
params.setNeedCheckPassword(true);
params.setAdsId(adsid);
params.setRegionId(regionId);
params.setCountryChannelList(channels);
params.setTimeZone(timeZone);
params.setCountryCode(countryCode);
params.setFunctionType(functionType);
params.setModuleServerDomain(moduleDomain);
params.setModuleServerPort(modulePort);

MSDeviceConfigManager.getInstance().startConfigureDevice(params, MSDeviceConfigType.MSDeviceBluetooth, new MSProgressCallback<MSDevice, MSDeviceConfigStep>() {
  @Override
  public void onProgressUpdate(MSDeviceConfigStep msDeviceConfigStep) {
     LogUtils.d("BleConfigActivity", msDeviceConfigStep.getStepName().name());
  }

  @Override
  public void onComplete(MSDevice data) {
     LogUtils.d("BleConfigActivity 配网成功", data.toString());
     bindDevice(data.getDeviceID(),data.getVerificationCode(),data.getDeviceType(),data.getProtocolVersion());//配网成功,调用云端绑定接口
  }

  @Override
  public void onError(MSErrorMessage errMsg) {
     LogUtils.d("BleConfigActivity 配网失败", errMsg.getErrorCode() + "//" + errMsg.getErrorMessage());
     Toast.makeText(BleConfigActivity.this,"配网失败"+errMsg.getErrorCode(),Toast.LENGTH_LONG).show();
  }
});

配网参数说明

msBleScanInfo:配网对象,为上一步扫描结果中的一个

routerBSSID:家庭路由的BSSID,系统属性获取

routerSSID:家庭路由的SSID,系统属性获取

routerPassword:家庭网络密码,用户手动填入

routerSecurity:家庭网络加密方式,系统属性获取

frequency:家庭网络频率,系统属性获取

adsid:网络接入网关id,(云云对接,从云端获取)

regionId:系统时区ID,获取当前时区代码从云端换区时区ID(1)

channels:信道列表,以用户当前国家向云端询问获取(信道列表代码)

timeZone:当前时区(MSTimeZone.EAST_8)

countryCode:国家代码(CN)

functionType:功能集 MSFunctionType.INTERNEL 或 MSFunctionType. OVERSEAS(国内:MSFunctionType.INTERNEL)

moduleDomain:模块端服务器地址(iotlab.midea.com.cn)

modulePort:模块端服务器端口(28443)

配网成功后调用:

​SDK配网成功后回调返回:MideaDevice。其中MideaDevice:protocolVersion:设备协议版本号 ,deviceType:设备品类 。此参数用于云端安全校验绑定,在绑定接口中为非必填参数。

需要先调通服务器的绑定接口,编写bindDevice(String deviceId,String verificationCode )方法或安全绑定接口bindDevice(String deviceId,String verficationCode,String deviceType,String protocolVersion)方法,详情可查询云端绑定接口

# 3.5 APP混淆配置

混淆配置文件中加入不混淆SDK的配置项

-keep class com.midea.iot.** {*;}

# 3.6 错误码

错误码 描述 可能原因(列举的原因只是一个子集,并非全部原因)
0 执行成功
4003 由于密码错误,回连家庭路由失败 检查配网过程中的家庭路由密码
4004 回连家庭路由超时 应弹出手动连接家庭路由引导页面
4005 其它错误导致回连家庭路由失败
4008 由于密码错误,连接设备AP失败 解决方案为在手机的wifi设置界面上对需要配网的设备AP"mdiea_xx_xxxx"进行“忘记密码”或“不保存”操作
4009 连接设备AP超时 此时APP应弹出界面提示用户手动连接对应的AP
4010 其它导致连接设备AP失败
4011 AP配网在AP模式下超时时间内未发现设备 1.AP热点不稳定--手机离设备进一点;自动切wifi;【iOS】本地网络权限-系统-设置-美居权限管理 2.在手机设置页面连接AP热点时,手机状态栏wifi图标还未出现就切换到app界面,这种大概率发生在ap热点是open模式(ap热点无密码),手机系统对这种热点有些限制,导致手机和热点连接需要较长时间
4013 配网在STA模式下超时时间内未发现设备 1.路由器密码输错 2.路由器负载过多 3.模块故障,可与模组同事分析模组相关log排查
4014 设置临时id应答超时 1.AP热点不稳定 2.手机和设备直接建立的tcp异常断开
4015 设置临时id返回值错误 1、模块端有问题 2、多云模块设置成了非美居配网模式
4016 网络参数错误 网络不稳定
4017 写ID网络异常 多为模块端主动关闭socket
4018 其它原因到时写ID失败 未知,需要联调
4023 新模块设置ssid密码环节超时无应答 AP配网,0x70指令模块超时无应答 1.手机和设备直接建立的tcp异常断开 2.在手机设置页面连接AP热点时,手机状态栏wifi图标还未出现就切换到app界面,这种大概率发生在ap热点是open模式(ap热点无密码),手机系统对这种热点有些限制,导致手机和热点连接需要较长时间 3.AP热点不稳定 4.模块在收到指令后立刻由AP模式切换至STA模式导致tcp连接断开,从而导致手机端未收到模块的应答
4024 旧模块设置ssid密码环节返回应答错误 AP配网,0x68指令模块应答非0
4025 旧模块设置ssid密码环节超时无应答 AP配网,0x68指令模块超时无应答 1.AP热点不稳定 2.手机和设备直接建立的tcp异常断开
4026 AP配网,写网络配置,返回数据解析不成功 AP配网,0x68、0x70共用,多为网络不稳定数据发送不全导致
4027 AP配网,写网络配置,发生读写错误 AP配网,0x68、0x70共用,多为模块主动关闭socket --模组的问题,1、wifi被自动切走限制;2、(模组把socket断开)手机靠近设备;重试配网;3、多次失败联系客服;
4028 AP配网,写网络配置,其它原因失败 AP配网,0x68、0x70共用,未知原因,需联调 与4027一样
4029 AP配网,设备切STA模式失败 1.AP热点不稳定 2.手机和设备直接建立的tcp异常断开 3.模块在收到指令后立刻由AP模式切换至STA模式导致tcp连接断开,从而导致手机端未收到模块的应答
4031 快连配网在超时时间内未发现设备(局域网或者云端发现) 1.输入的家庭路由的密码错误 2.路由器上负载设备过多 3.模块出了故障 4.家庭路由器的模式是否是11bgn mixed或者11n ,如果是这两者任何一种,请切换成其他的模式 5.模块是旧模块,当前的配网是一型一码快连,模块不支持 --与1307一致
4032 当前不支持该模块版本的配网,需升级SDK 1.使用的模块版本较高,而使用的SDK版本较低,两者不匹配,需要升级SDK
4033 AP配网,打开手机wifi失败
4034 AP配网,家庭路由加密方式不支持
4035 AP配网,连接家庭路由密码错误
4036 AP配网,连接家庭路由超时
4037 AP配网,其它原因导致连接家庭路由失败
4038 AP配网,连接设备发生IO错误 多为模块关闭了socket连接导致 --与4027一致
4039 AP配网,其它原因导致连接设备失败 1、模块未监听对应端口 2、模块广播里的端口不对应
4040 AP配网,A0获取设备信息失败 多为网络不稳定
4041 AP配网,A0命令发生异常 多为模块主动关闭socket ---4027一致
4042 AP配网,A0命令应答超时 模块未应答A0指令,或未在规定时间内应答
4043 AP配网,A0命令返回格式异常 模块应答格式不正确
4044 AP配网,A0命令其它错误 未知,需要联调
4045 快连配网,家庭路由加密方式不支持
4046 快连配网,连接家庭路由密码错误
4047 快连配网,连接家庭路由超时
4048 快连配网,其它原因导致连接家庭路由失败
4049 快连配网,发送组播包失败
4050 蓝牙配网,蓝牙连接断开 1、建议开关蓝牙后重试;2、手机靠近设备;
4051 蓝牙配网,获取公钥失败
4052 蓝牙配网,秘钥校验失败
4053 蓝牙配网,发送网络信息,模块回复解析失败 蓝牙配网,0x69指令,未知回复
4054 蓝牙配网,广域网发现设备失败
4055 蓝牙配网和控制,token校验失败
4056 蓝牙配网,找不到SSID 0x63指令,模块端的回复
4057 蓝牙配网,连接路由失败(一代蓝牙) 0x63指令,模块端的回复2(一代蓝牙) 1、密码错误;2、距离太远;3、5G;4、MAC地址白名单;5、DHCP功能没打开--路由器设置
4058 蓝牙配网,DNS解析失败--模组解析服务器域名 0x63指令,模块端的回复 wifi间歇性断开、路由器限制访问美居链接、路由器本身设置了DNS
4059 蓝牙配网,与服务器建立tcp失败 0x63指令,模块端的回复
4060 蓝牙配网,心跳包超时 0x63指令,模块端的回复
4061 蓝牙配网,登陆过程SST错误 0x63指令,模块端的回复
4062 蓝牙配网,模组主动重启 0x63指令,模块端的回复
4063 蓝牙配网,模组被动重启 0x63指令,模块端的回复
4064 蓝牙配网,SDK认证失败 0x63指令,模块端的回复
4065 蓝牙配网,登陆过程被服务器主动关闭 0x63指令,模块端的回复
4066 蓝牙配网,登陆过程发送数据失败 0x63指令,模块端的回复
4079 蓝牙配网,蓝牙未开启 1.手机蓝牙未打开
4082 蓝牙其它错误
4083 蓝牙配网,恢复配网出错
4084 蓝牙配网和控制,蓝牙交互过程超时
4090 AP配网,模块返回密码错误 预研,尚未投入使用 AP 配网,0x70指令 模块应答 4
4091 蓝牙二代配网,获取license失败 二代蓝牙协议,秘钥协商,云端接口获取失败,或者返回license返回空(云端没有配置对应mac的license),如是接口异常,则,返回接口异常的错误码
4092 蓝牙二代配网,通过license进行秘钥协商失败
4093 蓝牙二代配网,69指令,连接出错(包括模范返回错误)
4094 二代蓝牙配网,模组返回路由密码错误 改密码
4095 写网络参数时,模块返回不支持此信道
4096 蓝牙配网,模块返回两次连接参数不一致
4097 蓝牙配网,模块回复wifi信息,参数错误
4098 蓝牙配网,模组回复路由信号弱
4099 蓝牙配网,模组0D上报指令上报DHCP失败 修改路由器设置,打开DHCP
4100 蓝牙配网,模组0D上报指令上报路由器认证错误
4101 蓝牙配网,模组0D上报指令上报路由器关联错误
4115 蓝牙二代配网,0D上报/0x63查询返回 0x10 服务器登陆超时。
4116 蓝牙二代配网,0D上报/0x63查询返回 0x11 APP发送的信道在1~13之间,且SSID包含有“5G/-5G/_5G”等有5G标识的相关字符集,WiFi模块扫描路由器AP失败。
4117 蓝牙二代配网,0D上报/0x63查询返回 0x12 APP发送的信道在1-13之间,且SSID没有包含“5G/-5G/_5G”相关字符集,wifi模块扫描路由器AP失败。
4118 蓝牙二代配网,0D上报/0x63查询返回 0x13 APP发送的信道是0,且SSID中没有包含“5G/-5G/_5G”相关字符集wifi模块扫描路由器AP失败。 5Gwifi处理
4119 蓝牙二代配网,0D上报/0x63查询返回 0x14 APP发送的信道是>13,且SSID中没有包含“5G/-5G/_5G”相关字符集wifi模块扫描路由器AP失败5Gwifi处理
4120 蓝牙二代配网,0D上报/0x63查询返回 0x15 APP发送的信道>13,且SSID包含有“5G/-5G/_5G”等有5G标识的相关字符集,wifi模块扫描路由器AP失败。5Gwifi处理
4121 蓝牙二代配网,0D上报/0x63查询返回 0x16 APP发送的信道是0,且SSID包含有“5G/-5G/_5G”等有5G标识的相关字符集,wifi模块扫描路由器AP失败。5Gwifi处理
4123 蓝牙配网国家码错误 蓝牙配网0x67指令,模块应答国家码错误
4124 蓝牙配网时区错误 蓝牙配网0x67指令,模块应答时区错误
4125 蓝牙配网信道表错误 蓝牙配网0x67指令,模块应答信道表错误
4127 AP配网国家码错误 1.AP配网,APP未传国家码给SDK 2.AP配网0x70指令,模块0x8070指令应答24 ,即国家码错误(非大写字母 A-Z)
4128 AP配网时区错误 1.AP配网,APP未传时区给SDK 2.AP配网0x70指令,模块0x8070指令应答25 ,即时区错误 (time_zone > 24)
4129 AP配网信道表错误 1.AP配网,APP未传信道表给SDK 2.AP配网0x70指令,模块0x8070指令应答26 ,即信道表错误 (信道表数量 < 1 或者 > 10)
4130 蓝牙配网国家码或信道发送失败 多为国家码信道参数缺失或格式有误
4131 蓝牙mesh设备,云端获取deviceId接口失败 接口请求错误了
4132 蓝牙mesh设备,发送netkey信息到模组失败 蓝牙断开,频偏等原因都有可能
4133 蓝牙mesh设备,发送netkey信息时机不对 设备已经入网了,还发netkey过去
4134 发送mesh设备回复的mesh信息失败 接口请求失败了
4135 AP配网,模组重新进入AP 1、密码错误 2、模组不支持路由格式 仅安卓有,1307(疑似密码错误)
4136 AP配网,模块服务器域名错误 1.AP配网,二合一模块广播附加功能高字节bit0为1时,APP未传模块的服务器域名给SDK 2.AP配网0x70指令,模块0x8070指令应答27 ,即域名长度错误(域名长度>50)
4137 AP配网,模块服务器端口号错误 模块配网要求必须传模块服务器端口号,APP传入参数中缺失服务器端口号 (二合一模块广播附加功能高字节bit0为1)
4138 AP配网,区域ID错误 模块配网要求必须传城市ID,APP传入参数中缺失城市ID (二合一模块附加功能城市ID为1)
4139 AP配网,功能集类型错误 模块配网要求必须传功能集类型,APP传入参数中缺失功能集类型 (二合一模块广播附加功能高字节bit0为1)
4140 蓝牙配网,模块服务器域名错误 模块配网要求必须传模块服务器域名,APP传入参数中缺失服务器端口号 (二合一模组,设备蓝牙广播中标志为二合一固件)
4141 蓝牙配网,模块服务器端口号错误 模块配网要求必须传模块服务器端口号,APP传入参数中缺失服务器端口号 (二合一模组,设备蓝牙广播中标志为二合一固件)
4142 蓝牙配网,区域ID错误 模块配网要求必须传城市ID,APP传入参数中缺失城市ID (二合一模组,设备蓝牙广播中标志为需要区域ID)
4143 蓝牙配网,功能集类型错误 模块配网要求必须传功能集类型,APP传入参数中缺失功能集类型 (二合一模组,设备蓝牙广播中标志为二合一固件)
4144 蓝牙配网,模块回复不支持5g WiFi 模块回复不支持5G WiFi
4145 蓝牙配网,模块回复设备已被绑定 模块回复设备已被绑定(按道理被绑定,不应该能进入配网模式,碰到这个,需要先看下设备广播是否正确)
4146 蓝牙配网,模块回复数据接收失败 一代蓝牙配网,0x67指令模块回复0xff
4147 当前模组不支持蓝牙绑定 一般是模组固件不对,需上层业务校验
4148 蓝牙后确权查询失败
4149 蓝牙后确权设置失败
4150 蓝牙设备状态上报确权失败
4151 当前配网方式不支持此类附加动作 执行配网过程附加动作失败
4153 配网参数错误
4154 蓝牙配网发送网络信息失败 蓝牙配网,发送wifi配置信息,消息组装失败
4160 ADS集群ID错误
4161 ADS DNS解析错误
4162 ADS Tcp连接失败
4163 请求接入层域名错误
4164 蓝牙ADS集群ID错误
4165 蓝牙DNS解析错误
4166 蓝牙Tcp连接失败
4167 蓝牙请求接入层域名错误
4168 蓝牙配网,局域网在线,云端查找sn和随机数都没找到
4169 AP配网,局域网在线,云端查找sn和随机数都没找到 路由器是否能联网,或是有什么联网限制(云端提供一个页面,可用于测试是否能连接上美的云)【测试一下功能】
4177 网桥设备切换挂靠模式,模组不支持
4178 网桥设备切换挂靠模式,模组未验证
1321 广域网查询,云端发现sn在线,但是随机数对不上
1307(有可能是其他错误码) 广域网查询,云端发现随机数和sn都不在线,并且设备局域网不在线(没连上路由器)
4170 网桥子设备配网,业务层没有传家庭id
4171 网桥子设备配网,云端获取deviceId失败
4172 网桥子设备配网,发送deviceId,familyId给模组失败
4173 模组ADS ID错误
4174 模组请求接入层域名错误
4175 模组反馈路由信号太弱

# 3.7 android-SDK下载

点击下载 (opens new window)

最后修改于: 2024-12-30