2015-12-30 163 views
5

所以我有外圍設備BLE設備,我需要一些標識符,以便以後與其他iPhone共享。示例I與iPhone'A'連接到外設。 iPhone'A'將外設的標識符保存到數據庫,稍後我可以輕鬆地將iPhone'B'連接到由此標識符找到的外設。外圍BLE設備的唯一標識

現在有UUID每個iPhone-peripheral連接有什麼變化,但MAC Address不可用。你能提出什麼建議?

+0

是的,這是我在使用iOS 9.0時遇到的一個問題。在iOS 8.0之前,所有設備上的標識符都保持相同。仍在尋找答案。 –

+0

您是否使用EAAccessoryManager來查找外設?如果你確實檢查了所有的EAAccessory屬性,如果你可以使用其中的一個屬性。 (modelNumber,serialNumber,name ....) – LoVo

+0

除非您的外設通過GATT屬性提供某種唯一標識符我不認爲有任何解決方案 – Paulw11

回答

0

我有一個類似的問題,許多線程喜歡this說你無法獲得CoreBluetooth的MAC地址。我想連接到一個BLE外設(我的意思是開放和可連接的外設)並在數據庫上存儲一些信息,以便不同的iPhone可以讀取相同的數據庫,並在連接到相同類型的BLE外設時使用這些信息。現在我靠,設備名稱,這樣就得到:

-(void)addDiscoveredDevice:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 
{ 
    NSString * name = [peripheral name]; 
} 

因爲NSString * uuid = [[peripheral identifier] UUIDString];給了我不同的iOS設備不同的結果。

因此,假設我的第一個問題是要知道有多少Apple Watch與我的iPhone靠得很近,第二個問題是要知道給定Apple Watch(例如John的Apple Watch)是否與我的iPhone接近。不幸的是,這種方法不起作用,因爲用戶(例如約翰)或公司可以改變他們的外圍設備的名稱。

是的我可以依靠名稱+服務uuid​​ +特性uuid的組合,但出於同樣的原因,如果名稱更改它是無用的。 有沒有人找到解決方案?

0

如果您不自己製造外圍設備,那麼您無法在不同的iOS設備上唯一標識外圍設備。這正是蘋果公司所希望的,因爲這意味着開發人員無法根據設備地址來跟蹤用戶的位置或移動模式。這將是一個隱私問題。

如果你自己製造外設,那麼你可以做任何你想做的事情。例如:使用一個自定義的服務uuid​​,將uuid添加到廣告中的製造商數據,設置唯一的廣告名稱等等。但是,如果所有這些的核心目的是跟蹤您的用戶,那麼我猜測蘋果可能會拒絕您的提交。