2017-09-06 81 views
1

問題不在於BLE設備,它只是普通的藍牙設備。是否可以連接藍牙設備,而無需在iOS中進行配對?

目前我的代碼是這樣工作的, 我調用該函數:

[[EAAccessoryManager sharedAccessoryManager] showBluetoothAccessoryPickerWithNameFilter:nil completion:^(NSError *error) 
     { 

     }]; 
    } 

,並打開彈出可用的藍牙設備的列表,然後我點擊我需要的設備上,並得到一個對象,並繼續前進。

有沒有什麼辦法可以跳過這個選擇器步驟並直接獲取我的設備對象?

回答

1

不,不可能先不配對。第一次,您必須從設置應用程序或選擇器中將用戶與設備配對。但是,在第一次配對之後,如果配件已連接到iOS設備,則可以跳過選取器並獲取配件的EAAccesory *。這裏是你如何查詢的連接配件清單:

NSArray<EAAccessory *> *connectedAccessories = [EAAccessoryManager sharedAccessoryManager].connectedAccessories; 
for (EAAccessory *accessory in connectedAccessories) { 
    // Implement needed filter to recognize your device. 
    // You can use for instance accessory.protocolStrings 
    // The MAC address is available with [accessory valueForKey:@"macAddress"] 
} 

隨着EAAccessory框架您不能啓動到設備的連接編程。對於後續連接,您可以讓設備重新連接到上次連接的設備(如果您控制固件)。如果你的應用處於前臺,這將觸發EAAccessoryDidConnectNotification,否則它會排隊通知並更新連接配件的列表。

+0

您能否澄清固件如何完成自動後續連接?我直接與固件工程師一起工作,並希望在使用我正在使用的iOS應用程序之前,爲用戶提供不必進入設置應用程序並手動連接到附件的功能。 – Audible

+0

@聽起來相關文檔是MFi計劃的一部分,所以我不能公開任何細節。但是,如果您或固件團隊可以訪問MFi附件接口規範,您可以在第52.4節(修訂版R27)中找到起點。根據產品中使用的藍牙芯片組,可能還有一個功能可以在芯片組附帶的庫中完成。 –

+1

我絕對明白嚴格的MFi指導方針,但是,這是一個很好的答案,謝謝!我可以訪問MFi,並會查看您引用的特定部分,我將與固件工程師和芯片製造商合作嘗試解決此問題。非常感激。 – Audible