本帖最后由 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 文件,打开在下图修改即可:
|