iOS CoreBluetooth的swift实现 (2)
不妨想一下,我们在与人交流的时候需要做些什么,当然,我们先实现设备作为central时的数据接收和处理。
1.辨明对方的身份,如果他是你想听他说话的人,那就听他说吧(废话)
2.接收别人说的话,大脑对这些信息进行处理。
3.注意保持听取,不要就听一会儿,态度端正一点。
在程序中我们做的方式可以类比过去(用CBCentralManager实现)
1.搜索相应Peripheral并连接
2.连接后进行数据接收,对里面的characteristic进行读写。
3.保持数据的更新回调
贴一下代码来解释一下
central当然现在还没有太多内容,取决于你的需求
COCenManager.scanForPeripheralsWithServices([CBUUID]?, options: [String:AnyObject]?)
这个方法里要传入设备service的UUID数组,设备就会搜索具有这些UUID的service的设备,这个就需要知道UUID的一些东西了,他其实是作为一个标签一样的存在,可以自己查一下相关的知识,这里不再详细讲解。UUID是nil,那就会搜索所有设备。
经过这几步(参数确定,不要像我这样。)我们就建立了设备与peripheral的连接,注意,如果连接失败需要在didFailToConnectPeripheral里做出响应。
discoverServicediscoverService传入一个CBUUID数组,如果填入nil则是默认搜索了所有的service,当然不推荐这么做,这样会耗费没必要的电量和时间。当调用这个函数成功之后,设备会回调
func peripheral(peripheral:CBPeripheral, didDiscoverServices error:NSError?)
在这个函数里面我们可以对所需要的service进行提取处理。首先我们最想做的就是提取出他所提供的的内容--characteristic。
discoverCharacteristics([CBUUID]?, forService:CBService)
就是这个了!用peripheral获得相应service的Characteristics的UUID数组,就可以读取啦。