情形一:(藍牙外設(shè)的名字不一樣,那么藍牙外設(shè)的名字就可以作為我們需要的唯一標識)
-?(void)centralManager:(CBCentralManager*)centraldidDiscoverPeripheral:(CBPeripheral*)peripheraladvertisementData:(NSDictionary?*)advertisementDataRSSI:(NSNumber*)RSSI;
方法中,我們就可以通過掃描到的藍牙外設(shè)的名字(peripheral.name)來進行針對性的操作。
情形二:(藍牙外設(shè)的名字都一樣,但是不需要很嚴苛的知道連接的是那一臺外部設(shè)備)
有一些公司的外部設(shè)備的名字都是一樣的,但是進行連接或者其他操作的時候,沒必要知道具體的是哪一臺設(shè)備,那么就可以使用藍牙外設(shè)的UUIDString(即peripheral.identifier.UUIDString)來作為唯一標識。但是,需要注意的一點:不同的中心設(shè)備(也可以說是不同的手機)對于同一臺藍牙設(shè)備,獲取到的UUIDString是不一樣的。
舉例說明一下:對于同一臺藍牙設(shè)備,我的手機進行掃描,然后讀取它的UUIDString,和你的手機進行掃描,獲取到的UUIDString是不同的。
情形三:(藍牙外設(shè)的名字都一樣的情況下,不管任何手機獲取到的唯一標識都是一樣的或者需要確切知道是哪一臺藍牙設(shè)備)
針對這種情況,我們只能獲取藍牙設(shè)備的mac地址來作為唯一標識。但是,蘋果公司也許是出于安全考慮,并沒有對我們開放獲取藍牙設(shè)備的mac地址的接口(安卓開發(fā)是可以獲取的)。那么我們只能自己通過某種手段來獲取mac地址,有兩種方法可以讓我們獲取到mac地址:
第一種:將mac地址放在藍牙設(shè)備的廣播數(shù)據(jù)之中,然后在廣播的時候,將mac地址以廣播的形式發(fā)送出來以供我們獲取。
第二種:將mac地址寫在某一個特征通道中,當我們連接藍牙設(shè)備之后,通過某一個特征通道來獲取mac地址。