打印

【我是个快乐的搬运工连载系列②】之详细分析在设备列...

[复制链接]
695|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 caijie001 于 2018-3-1 15:16 编辑

注:本帖为转载系列,征得“半颗心脏”博主(我老乡)的同意。哎呀,老家人才还是蛮多的

原贴地址:第一篇:认识开源框架结构,导入PK、APP的id和secret。
                 第二篇:详细分析在设备列表的代码块,如何修改自定义的设备图片。
1、分析设备列表类 GosDeviceListActivity.java 中的代码。

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


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



1.2 问题二,是怎么过滤设备的?为何我的APP不能看到其他产品设备?
  • 答:回答这个问题前,必须要知道一个事情,在翻阅官方Android的SDK技术文档,说道setSubscribe()方法可以订阅设备,从而绑定设备,图一所示;

  • 在其工程瞧瞧:我这截图了。看看图二,在未绑定但已经发现的设备中已经过滤了,是根据产品的 PK和密钥值来过滤了!一旦被绑定,其设备的isBind()返回就是true了,从而通知重新集合获取SDK数据,就可以显示不同种类的设备了。而未绑定订阅的设备,没有进去手机的SDK,当然没有 显示出来啦!






2 怎么修改设备前面的图片?
  • 在 工程目录下的 res ->layout 找到 item_gos_device_list.xml 文件,打开在下图修改即可:







相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:21ic公开课专区:http://open.21ic.com/ 21ic资料下载中心:http://dl.21ic.com/ 21ic项目外包中心:http://project.21ic.com/ 杰杰欢迎大家有空常来赛事专区逛逛

131

主题

3790

帖子

63

粉丝