0

我有一個應用程序(「APP A」)連接到藍牙設備,並發現所有需要的服務和特性。我有另一個應用程序(「APP B」),將嘗試調用從另一個應用程序連接到藍牙設備

NSArray *connectedPeripheralArray = [centralManager retrieveConnectedPeripheralsWithServices:@[requiredUUID]]; 

,並將會從IOS系統已連接的藍牙設備(CBPeripheral)。考慮到我之前發現了「APP A」中的所有服務和特性,我是否需要在「APP B」中再次執行此操作,或者是否可以按照我的意願開始使用服務/特性?

P.S.連接到「APP A」後,藍牙設備會一直連接到iOS系統。

謝謝!

回答

1

是的,您需要執行完整的發現。我假設你的計劃是將各種設備標識符硬編碼到App B中?由於ID可能會隨時間而改變,因此這將不可靠。

您可以依靠底層CoreBluetooth框架在適當的位置緩存信息。

+0

我正在構建一個健康設備,我希望它的功能類似於Pebble smartWatch(如果您知道它是如何工作的)。卵石通過卵石應用程序將卵石裝置連接到iOS系統。然後,第三方應用程序可以引用連接到iOS系統的卵石設備。我想弄清楚他們是如何做到這一點的。重新發現所有服務是沒有意義的。有什麼想法嗎?謝謝 – Teddy13

+0

卵石不使用藍牙4.0(藍牙LE) - 它是一個MFI合作伙伴 - 所以一旦設備與手機配對,您可以通過iOS的PebbleKit訪問它 - https://developer.getpebble.com/2 /mobile-app-guide/ios-guide.html/ Bluetooth LE和CoreBluetooth的優勢在於它不需要附件獲得MFI認證。您只需使用其服務產品發現您的設備。該過程可以像這樣工作「發現新的AcmeDevice - 連接?」如果用戶說「是」,那麼請記住該設備,並在下次發現該設備時,無需提示即可使用該設備,但需要在每個應用中執行此操作 – Paulw11

+0

如果您決定停用MFI路由,則可以訪問允許您進行通信的不同API用你的設備 – Paulw11