准备工作

  • 集成Midea SDK

模式说明

SDK具备三种扫描模式:

  1. 低频扫描模式,每个广播发送周期在40s以上。
    2.高频模式,每个广播发送周期为2s。
    3.关闭模式,SDK不发送广播。

关联接口

  • void startScanLanDevice(int time, MSmartDataCallback> callback);

    启动广播扫描,注意正常情况下广播是一直在低频率的进行局域网设备发现,这个接口主要根据time参数的不同含义不同:

  1. time>0 SDK执行高频扫描time指定的时间,扫描完成后,返回这段时间内所有发现的设备(去重)并且恢复到低频模式(如果没有其它高频任务),SDK会做缓存。
    1. time=0 SDK立即启动扫描,但是不会回调任何数据,也就是callback无效。
      3.time=-1 SDK一直保持高频扫描,直到再次调用这个接口且time不是-1,不会回调任何数据,callback无效。
      4.time=-2 SDK完全关闭广播扫描,直到再次调用这个接口且tiem不是-2,不会回调任何数据,callback无效。

注意: 启动配网或者添加局域网都会打破上述第4条规则,配网结束后,SDK会恢复低频模式。

  • void registerDeviceScanListener(MSmartDeviceScanListener listener);

    监听设备扫描结果。这个接口实时监听设备扫描结果,一点有设备发现立刻上报,SDK不做任何缓存处理。可以配合startScanLanDevice使用,快速发现UI需要的具体某个设备。

  • void removeDeviceScanListener(MSmartDeviceScanListener listener);

    移除设备扫描结果监听。

接口具体定义及参数定义请参照API文档 MSmartUserDeviceManager中的定义

场景

对于上层UI用户来讲,扫描局域网设备可能有三种可能性:

  1. 返回一段时间内扫描的所有设备,例如:让SDK扫描20s后返回所有扫描到的设备列表。
  2. 有设备发现立刻上报。
  3. 完全停止扫描。

特殊场景

  1. 用户希望快速扫描并自己缓存设备列表:

    用户自己做定时扫描,通过每次调用startScanLanDevice并将time参数设定为0,然后通过registerDeviceScanListener监听设备扫描上报,从而实现用户定制需求。也可以将time设定为-1,任务完成后再调用一次startScanLanDevice并将time参数设定为0。

广播影响

目前设备的局域网上线需要依靠广播,如果关注局域网上线速度,就不能关不局域网广播。

SDK优化

目前AndroidSDK 已经做了一些优化包括:

  1. APP退到后台SDK会自动关闭广播。
    1. APP进入前台SDK会立即高频执行4s设备扫描,随后进入低频模式。