liuxinyi 发表于 2015-5-25 14:50:40

关于获取设备列表问题

每次打开app 获取设备列表必须通过XPGWifiSDK.sharedInstance().getBoundDevices(String uid,String token,String… specialProductKey);来获取设备吗,而且这个回调是同步回调,还是需要等待一段时间才会调用 XPGWifiSDKListener.didDiscovered(int result, List<XPGWifiDevice> devicesList)这个方法??

liuxinyi 发表于 2015-5-25 14:52:35

还有,当手机网络不佳的情况下,怎么判断XPGWifiDevice.write(String jsonData); 是否成功呢

碎羽 发表于 2015-5-25 21:21:24

XPGWifiSDKListener.didDiscovered是异步回调,同时获取网络和本地路由器的设备。远程的列表获取后会回调,发现了本地设备也会回调,所以该接口会回调多次,因为发现设备通过UDP广播的形式,因此设备回复一次,则回调一次。另外,XPGWifiDevice.write(String jsonData)方法,在设计上是需要设备收到以后回复一个实时状态的,一段时间内没收到回复则可判断为发送失败。此时可提示用户发送失败或后台重发。

liuxinyi 发表于 2015-5-26 11:04:01

碎羽 发表于 2015-5-25 21:21
XPGWifiSDKListener.didDiscovered是异步回调,同时获取网络和本地路由器的设备。远程的列表获取后会回调, ...

也就是说,比如用户开灯操作调用了write方法,我还需要计时,timeout来判断这个开关灯指令是否成功?

liuxinyi 发表于 2015-5-26 11:06:19

如果没网络情况下调用XPGWifiSDK.sharedInstance().getBoundDevices(String uid,String token,String… specialProductKey); 方法
XPGWifiSDKListener.didDiscovered是不会有回调的吗- - 每次打开app 都要从网络上,或者路由器上获取设备吗?

Tom 发表于 2015-5-26 12:12:51

getBoundDevice() 是需要依赖网络的。这个函数,在任何情况(包括没有网络的情况)下都会确保至少有一个回调。当然,这个回调是包含主动上报的事件,所以会触发不只一次的回调。要判断完成,建议自己做个计时器判断即可。
页: [1]
查看完整版本: 关于获取设备列表问题