1、分析設備列表類 GosDeviceListActivity.java 中的代碼。
注意:圖中有三個表,被綁定的設備、未綁定已發現的設備 和 已經綁定但離線的設備,
上面的三個區域的都是各存放同一個控件SlideListView2,這個是重新listView的子控件。那麼對應的數據源是下面表中的三個集合,制定泛型為對象 GizWifiDevice 。只需要關心數據源即可加載不同的設備。
|
類中的list分類
|
説明
|
泛型
|
|
boundDevicesList
|
已經被綁定的設備集合
|
GizWifiDevice
|
|
foundDevicesList
|
被發現未綁定的設備集合 |
GizWifiDevice
|
|
offlineDevicesList
|
已經綁定但離線的設備集合
|
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 文件,打開在下圖修改即可: