1. 程式人生 > >IOS開發之HomeKit(四)

IOS開發之HomeKit(四)

        書接上文,上一篇文章我們介紹了一下如何使用APP搜尋獲取到智慧硬體的物件。那麼這篇文章需要介紹一下智慧硬體模擬器的使用以及如何對智慧硬體進行簡單的控制。

一    HomeKit Accessory Simulator的使用

如何下載這個模擬器在第一篇文章中已經介紹過了,這裡不再贅述。開啟HomeKit Accessory Simulator的主介面如下圖:


左下角的黃色圓圈內有一個➕,點選建立一個新的智慧裝置。這時會彈出一個選項列表:


上邊的選項是新增一個新的裝置,第二個是新增一個新的橋接

新增橋接這個先不做介紹,先點選第一個建立一個新的智慧裝置。接下來填寫裝置資訊:


名字隨便起一個,我這裡是新加了一個燈泡的智慧硬體。新增好之後如下圖所示:


這裡會顯示出剛才建立的燈泡的基本資訊。

點選下方的Add Service為燈泡這個智慧硬體新增一個服務,彈出一個配置資訊的框,選擇填寫配置資訊:


這三個框service是選擇的,name和UUID是自己填寫的,也可不填使用預設的。我們這裡service選擇switch,即我們為燈泡新增一個開關的服務。新增好之後會出現在主介面上


這就是這個模擬器的基本使用了,還有很多功能大家自己可以研究一下,這裡不多做介紹了。

二 使用APP實現對硬體物件的基本控制

開啟APP在“我家”這個home中有一個“臥室”這個room點選臥室進入房間的介面,點選新增配件按鈕,之後可以看到搜尋到了燈泡這個裝置已經新增到我們的列表之中了。點選燈泡將燈泡新增進臥室。


我這裡為了更加清楚的表達,我把獲取到的外設物件傳值到一個新的介面中來進行操作。在這裡建立一個collectionView把外設展示出來,我這裡因為就剛才添加了一個外設所以就顯示了一個。


這裡偷個懶(減少一下控制元件的使用),我們實現一下這個功能。直接點選這個cell就完成燈泡的開關操作,那麼怎麼知道燈泡的開關情況呢?

看模擬器的主介面,我們剛才新增的開關服務。下面我們在APP上點選燈泡之後下圖中YES和NO前面的小黑點會根據我們的操作自動選擇對應的位置。這樣來模擬我們實際硬體的開關情況。


程式碼如下:

為了偷懶我把一坨程式碼全部寫到didSelectItemAtIndexPath這個代理方法裡邊了:


太長一次截不完,接下圖

       到這裡就完成了對該燈泡外設的簡單開關的操作了,我們通過APP點選上上上圖中的呢個綠色名字為燈泡的cell,我們會看到模擬器中顯示的開關狀態可以根據我們的操作進行改變了。

      那麼還有一個問題,如果我們操作硬體APP中顯示的硬體的狀態也應該改變才對啊。別忘了我們剛才設定了硬體的代理:


此時我們就需要用到它的代理回調了:

       當我們操作硬體的時候,如果硬體的特徵值改變的話。系統會自動呼叫這個方法,我們就可以看到特徵值改變的情況,那麼我們拿到這個特徵值之後,就可以去更新UI了,來保證APP顯示的狀態和硬體的實際狀態是一致的。