資源描述:
《藍(lán)牙app開發(fā)-ios藍(lán)牙通信》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、藍(lán)牙app開發(fā)-iOS藍(lán)牙通信一、引言????????《深圳酷點(diǎn)網(wǎng)》是藍(lán)牙手機(jī)app開發(fā)企業(yè),藍(lán)牙4.0是設(shè)備近距離通信的一種方便手段,在iPhone引入藍(lán)牙4.0后,設(shè)備之間的通訊變得更加簡(jiǎn)單。相關(guān)的藍(lán)牙操作由專門的CoreBluetooth.framework進(jìn)行統(tǒng)一管理。通過(guò)藍(lán)牙進(jìn)行通訊交互分為兩方,一方為中心設(shè)備central,一方為外設(shè)peripheral,外設(shè)通過(guò)廣播的方式向外發(fā)送信息,中心設(shè)備檢索到外設(shè)發(fā)的廣播信息,可以進(jìn)行配對(duì)連接,進(jìn)而進(jìn)行數(shù)據(jù)交互。二、中心設(shè)備CBCentralManager???
2、?????CBCentralManager是管理中心設(shè)備的管理類,其中重要方法如下://設(shè)置中心設(shè)備代理@property(assign,nonatomic,nullable)iddelegate;//中心設(shè)備當(dāng)前狀態(tài)@property(readonly)CBCentralManagerStatestate;//中心設(shè)備是否正在掃描@property(readonly)BOOLisScanningNS_AVAILABLE(NA,9_0);其中state是一個(gè)枚舉,
3、有關(guān)藍(lán)牙是否可用的狀態(tài)如下:typedefNS_ENUM(NSInteger,CBCentralManagerState){//狀態(tài)未知CBCentralManagerStateUnknown=0,//連接斷開即將重置CBCentralManagerStateResetting,//該平臺(tái)不支持藍(lán)牙CBCentralManagerStateUnsupported,//未授權(quán)藍(lán)牙使用hovertree.comCBCentralManagerStateUnauthorized,//藍(lán)牙關(guān)閉CBCentralManage
4、rStatePoweredOff,//藍(lán)牙正常開啟CBCentralManagerStatePoweredOn,};下面這些方法用于初始化管理中心://初始化方法//設(shè)置的代理需要遵守CBCentralManagerDelegate協(xié)議//queue可以設(shè)置藍(lán)牙掃描的線程傳入nil則為在主線程中進(jìn)行-(instancetype)initWithDelegate:(nullableid)delegatequeue:(nullabledispatch_queue_t)
5、queue;//此方法同上在options字典中用于進(jìn)行一些管理中心的初始化屬性設(shè)置//字典中支持的鍵值如下http://www.cnblogs.com/roucheng//*NSString*constCBCentralManagerOptionShowPowerAlertKey對(duì)應(yīng)一個(gè)NSNumber類型的bool值,用于設(shè)置是否在關(guān)閉藍(lán)牙時(shí)彈出用戶提示NSString*constCBCentralManagerOptionRestoreIdentifierKey對(duì)應(yīng)一個(gè)NSString對(duì)象,設(shè)置管理中心的標(biāo)識(shí)
6、符ID*/-(instancetype)initWithDelegate:(nullableid)delegatequeue:(nullabledispatch_queue_t)queueoptions:(nullableNSDictionary*)options;//根據(jù)獲取所有已知設(shè)備-(NSArray*)retrievePeripheralsWithIdentifiers:(NSArray7、D*>*)identifiers;//根據(jù)服務(wù)id獲取所有連接的設(shè)備hovertree.com-(NSArray*)retrieveConnectedPeripheralsWithServices:(NSArray*)serviceUUIDs;在初始化管理中心完成后,會(huì)回調(diào)代理中的如下方法,我們必須實(shí)現(xiàn)如下方法://這個(gè)方法中可以獲取到管理中心的狀態(tài)-(void)centralManagerDidUpdateState:(CBCentralManager*)centr
8、al;如果上面方法中管理中心狀態(tài)為藍(lán)牙可用,可以通過(guò)下面方法開啟掃描外設(shè)://serviceUUIDs用于掃描一個(gè)特點(diǎn)ID的外設(shè)options用于設(shè)置一些掃描屬性鍵值如下/*//是否允許重復(fù)掃描對(duì)應(yīng)NSNumber的bool值,默認(rèn)為NO,會(huì)自動(dòng)去重NSString*constCBCentralManagerScanOptionAllowDuplicates