不妨想一下,我們在與人交流的時候需要做些什么,當然,我們先實現設備作為central時的數據接收和處理。
1.辨明對方的身份,如果他是你想聽他說話的人,那就聽他說吧(廢話)
2.接收別人說的話,大腦對這些信息進行處理。
3.注意保持聽取,不要就聽一會兒,態度端正一點。
在程序中我們做的方式可以類比過去(用CBCentralManager實現)
1.搜索相應Peripheral并連接
2.連接后進行數據接收,對里面的characteristic進行讀寫。
3.保持數據的更新回調
貼一下代碼來解釋一下
當然現在還沒有太多內容,取決于你的需求
COCenManager.scanForPeripheralsWithServices([CBUUID]?, options: [String:AnyObject]?)
這個方法里要傳入設備service的UUID數組,設備就會搜索具有這些UUID的service的設備,這個就需要知道UUID的一些東西了,他其實是作為一個標簽一樣的存在,可以自己查一下相關的知識,這里不再詳細講解。UUID是nil,那就會搜索所有設備。
經過這幾步(參數確定,不要像我這樣。)我們就建立了設備與peripheral的連接,注意,如果連接失敗需要在didFailToConnectPeripheral里做出響應。
discoverService傳入一個CBUUID數組,如果填入nil則是默認搜索了所有的service,當然不推薦這么做,這樣會耗費沒必要的電量和時間。當調用這個函數成功之后,設備會回調
func peripheral(peripheral:CBPeripheral, didDiscoverServices error:NSError?)
在這個函數里面我們可以對所需要的service進行提取處理。首先我們最想做的就是提取出他所提供的的內容--characteristic。
discoverCharacteristics([CBUUID]?, forService:CBService)
就是這個了!用peripheral獲得相應service的Characteristics的UUID數組,就可以讀取啦。