1、分析设备列表类 GosDeviceListActivity.java 中的代码。


onenet物联网平台 图片大小限制_开源框架


注意:图中有三个表,被绑定的设备未绑定已发现的设备已经绑定但离线的设备
上面的三个区域的都是各存放同一个控件SlideListView2,这个是重新listView的子控件。那么对应的数据源是下面表中的三个集合,制定泛型为对象 GizWifiDevice 。只需要关心数据源即可加载不同的设备。

类中的list分类

说明

泛型

boundDevicesList

已经被绑定的设备集合

GizWifiDevice

foundDevicesList

被发现未绑定的设备集合

GizWifiDevice

offlineDevicesList

已经绑定但离线的设备集合

GizWifiDevice


1.1 问题一,以上集合的数据从何而来?

  • 答: 从图一方法 UpdateUI() 可以看到,三种数据都是从 GosDeviceModuleBaseActivity.deviceslist 这个数据集合来,那么这个数据集在哪的呢?我们继续翻阅进去看图二,追根到底是在下面所图地方所添加到GosDeviceModuleBaseActivity.deviceslist 集合的!也就是说:追其本质,还是从SDK提供的设备监听对象中获得的。然后把数据添加到GosDeviceListActivity.java类中,然后层层剖析得到。

onenet物联网平台 图片大小限制_onenet物联网平台 图片大小限制_02

onenet物联网平台 图片大小限制_物联网_03


1.2 问题二,是怎么过滤设备的?为何我的APP不能看到其他产品设备?

  • 答:回答这个问题前,必须要知道一个事情,在翻阅官方Android的SDK技术文档,说道setSubscribe()方法可以订阅设备,从而绑定设备,图一所示;
  • 在其工程瞧瞧:我这截图了。看看图二,在未绑定但已经发现的设备中已经过滤了,是根据产品的 PK和密钥值来过滤了!一旦被绑定,其设备的isBind()返回就是true了,从而通知重新集合获取SDK数据,就可以显示不同种类的设备了。而未绑定订阅的设备,没有进去手机的SDK,当然没有 显示出来啦!

onenet物联网平台 图片大小限制_onenet物联网平台 图片大小限制_04


onenet物联网平台 图片大小限制_物联网_05


2 怎么修改设备前面的图片?


  • 在 工程目录下的 res ->layout 找到 item_gos_device_list.xml 文件,打开在下图修改即可:

onenet物联网平台 图片大小限制_物联网_06