通过查看日志判断Android App端配网是否成功,以及异常情况的检查方法。

成功日志参考

配置成功的日志参考如下。

  • 一键&零配&路由器配网配网成功链路参考
    // 配网入口
    AlinkDC_AddDeviceBiz: setDevice() call
    AlinkDC_AddDeviceBiz: startAddDevice() call // 开始配网
    // 配网参数检查 参数预检查
    AlinkDC_AddDeviceBiz: state=AddStatePrechecking,isSuccess=true,info=null,error=null
    ########### 一键配网专属流程 开始 ##############
    // 进入一键配网流程输入账号密码
    AlinkDC_AddDeviceBiz: >state=AddStateProvisionPreparing,isSuccess=false,info=null,error=null
    // 如果有上述流程,但是没有toggleProvision调用,则是没有输入账号密码就结束了流程
    AlinkDC_AddDeviceBiz: toggleProvision() call
    ########### 一键配网专属流程 结束 ##############
    // 真正进入配网
    AlinkDC_AddDeviceBiz: state=AddStateProvisioning,isSuccess=false,info=null,error=null
    // 配网成功的结果如下
    AlinkDC_AddDeviceBiz: state=AddStateProvisionOver,isSuccess=true,
  • 热点配网成功链路参考
    // 热点开启
    AlinkDC_HotspotHelper: setupWifiAP() call.
    // 发现设备
    AlinkDC_HotspotHelper: discoveryDevices() call.
    // 发送 ssid 和 password 到设备端
    // 如果没有 switchAP 就直接 recoverWiFiConnect 则表示未收到指定PK的设备连接上热点。AlinkDC_HotspotHelper: switchAP() call. ssid=xxx
    // 停止发现设备
    AlinkDC_HotspotHelper: stopDiscovery() call.
    // 恢复 wifi 连接
    AlinkDC_HotspotHelper: recoverWiFiConnect() call.AlinkDC_AddDeviceBiz: setDevice() call.
    // 开始配网
    AlinkDC_AddDeviceBiz: startAddDevice() call.
    // 预检查
    AlinkDC_AddDeviceBiz: state=AddStatePrechecking,isSuccess=true,info=null,error=null
    // 配网中
    AlinkDC_AddDeviceBiz: state=AddStateProvisioning,isSuccess=true,info=null,error=null
    // 配网成功 或者失败 配网失败查看具体的失败原因
    AlinkDC_AddDeviceBiz: state=AddStateProvisionOver,isSuccess=true

按照以下流程进行排查。

配网失败排查

常见的配网失败现象有以下两种:

  • 设备联网中进度从0%-100%,之后显示设备连接失败。
  • 设备一直显示设备连接中进度从0%-100%直到失败。
  1. 确定用户进入配网页面的路径。
    • 本地发现的设备:列表 > 设备联网中
    • 产品列表或者扫码:热点开启中 > 设备连接中 > 设备联网中
    • 产品列表或者扫码:设备联网中
  2. 检查环境问题。
    1. 确认设备已上电并进入配网模式。
    2. 确认手机WiFi已开启。
    3. 热点模式确认手机有SIM卡,并且使用手机流量能够上网。
    4. 确认WiFi 密码是否正确。
    5. 热点模式下,手机申请的权限是否都有赋予。
  3. App端排查。
    1. 搜索关键字 AlinkDC_AddDeviceBiz ,查看配网流程是否已启动。
      startAddDevice 代表配网已启动。
      AlinkDC_AddDeviceBiz: startAddDevice() call.
      // 预检查
      AlinkDC_AddDeviceBiz: state=AddStatePrechecking,isSuccess=true,info=null,error=null
      // 配网中
      AlinkDC_AddDeviceBiz: state=AddStateProvisioning,isSuccess=true,info=null,error=null
      // 配网成功 或者失败 配网失败查看具体的失败原因
      AlinkDC_AddDeviceBiz: state=AddStateProvisionOver,isSuccess=true
    2. 搜索关键字 AddStateProvisionOver
      根据AddStateProvisionOver返回的错误信息,ErrorCode确定错误原因。如code=606,表示请求服务端接口的时候出错,导致配网失败。
      // 配网结果
      AlinkDC_AddDeviceBiz: state=AddStateProvisionOver,isSuccess=false,info=null,error=DCErrorCode [code:617, subcode:0, codeName:PROVISION_TIMEOUT, message:provisionTimeout, extra:null]
    3. 搜索关键字 awss.event.connectap.notify
      如果没有以下日志,则表示手机端没有收到设备端的配网成功通告。
      05-30 17:51:58.630 31368-31886/com.aliyun.iot.living D/AlinkDC_CoAPNotifyDeliver: onRecRequest request={"id":"24","version":"1.0","method":"awss.event.connectap.notify","params":{"awssVer":{"smartconfig":"2.0","zconfig":"2.0","router":"2.0","ap":"2.0"},"productKey":"b1iuHMGJYGI","deviceName":"IOT_test01","mac":"2C:3A:E8:22:05:CE","ip":"192.168.1.31","cipherType":4,"type":0}}
      检查手机当前连接的WiFi是否和给设备配置的WiFi一致。返回发现列表如果仍不能发现设备,则需要从设备端日志继续排查。

设备连接中失败

设备连接中失败,是热点配网热点创建之后,没有正确的设备连上当前开启的热点的场景。可以从环境检查、APP端日志排查、设备端日志排查三个方面分析。

  1. 检查环境。
    • 系统是否7.1.x及以上版本。

      提示开启热点的时候,有没有正常开启 aha 12345678 热点。

    • APP端弹出需要授予权限,如开启WiFi、开启热点的时候有没有授予权限。
    • 设备有没有进入配网模式。
    • 热点是否正常开启;部分手机热点开启成功,顶部会提示“手机热点已开启”。
    • 热点开启成功,查看手机的通知栏或顶部是否有提示“一个设备已连接”。
    • 确认WRITE_SETTINGS权限申请成功。
  2. 排查APP端日志。
    1. 搜索关键日志 COAP_METHOD_AWSS_DEVICE_INFO_NOTIFY 判断设备是否连接成功。
      出现日志,则表示设备端连接成功;反之设备端连接失败。
      05-30 17:51:38.433 31368-31886/com.aliyun.iot.living D/AlinkDC_CoAPNotifyDeliver: onRecRequest request={"id":"5","version":"1.0","method":"awss.device.info.notify","params":{"awssVer":{"smartconfig":"2.0","zconfig":"2.0","router":"2.0","ap":"2.0"},"productKey":"b1iuHMGJYGI","deviceName":"IOT_test01","mac":"2C:3A:E8:22:05:CE","ip":"192.168.43.192","cipherType":4,"random":"6A000BC93C4649A33DF7787A2102B1F5","signMethod":0,"sign":"DEEC98C3C5BE9E7CF06B4E81C434D887C5B872D0"}}
      05-30 17:51:38.434 31368-31886/com.aliyun.iot.living D/AlinkDC_PhoneApAhaNotifyHandler: onRecRequest
      05-30 17:51:38.446 31368-31886/com.aliyun.iot.living D/AlinkDC_PhoneApAhaNotifyHandler: COAP_METHOD_AWSS_DEVICE_INFO_NOTIFY
      05-30 17:51:38.447 31368-31368/com.aliyun.iot.living D/AlinkDC_DCTrackerWrapper: sendEvent(),ALP_phoneApDevFoundSucc
      05-30 17:51:38.448 31368-31368/com.aliyun.iot.living D/AlinkDC_PhoneApAhaNotifyHandler: COAP_METHOD_AWSS_DEVICE_INFO_NOTIFY new device.
    2. 搜素关键日志 switchAP ,判断PK是否一致。
      如果1中有发现设备,但是没有 switchAP 日志,则连接热点的设备PK和用户选择的PK不一致。
      05-30 17:51:38.577 31368-31828/com.aliyun.iot.living D/AlinkDC_HotspotHelper: switchAP() call. ssid=NETGEAR73
      05-30 17:51:38.595 31368-31828/com.aliyun.iot.living D/AlinkDC_AlinkPhoneApConfigStrat: start get wifi list task.
      05-30 17:51:38.596 31368-31828/com.aliyun.iot.living D/AlinkDC_DCTrackerWrapper: sendEvent(),ALP_phoneApGetWifiListStart
    3. 设备端日志排查。
      请参考设备端日志