我正在嘗試瞭解iOS上的CoreBluetooth和外部附件。EAAccessoryDidConnectNotification不會觸發
首先,我試着看到設備列表通過print(EAAccessoryManager.sharedAccessoryManager().connectedAccessories)
通過藍牙連接到我的手機......儘管有3個設備連接(根據設置應用程序),我得到一個空陣列。
接下來,我想報名參加連接/斷開通知:
import UIKit
import ExternalAccessory
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "somethingConnected:",
name: EAAccessoryDidConnectNotification,
object: nil)
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "somethingDisconnected:",
name: EAAccessoryDidDisconnectNotification,
object: nil)
EAAccessoryManager.sharedAccessoryManager().registerForLocalNotifications()
}
func somethingConnected(name: EAAccessory) {
print("here")
}
func somethingDisconnected(name: EAAccessory) {
print("there")
}
}
...我什麼也得不到當我打開/關閉(從而斷開/連接)一個簡單的藍牙音箱我有。
I am seeing this issue(通知不提供,直到showBluetoothAccessoryPickerWithNameFilter()
完成塊執行後),但是,總體來說,這似乎是兩種:
A)的東西與iOS無法正常工作
B)我」 m做錯了事情(這兩個可能性更大)。
我需要安裝特殊的MFI證書才能查看連接的附件列表嗎?爲什麼通知不提供?
任何建議/代碼示例非常感謝。
更新
更重要的是:仍然不知道爲什麼connectedAccessories
不工作,所以對這個忠告大大所需。
也就是說,重新閱讀Apple Developer文檔,我不認爲這些類型的通知使用NSNotificationCenter.defaultCenter().addObserver
是正確的/可能的。
具體來說,文檔指出,直到調用showBluetoothAccessoryPickerWithNameFilter()
之前,EA通知纔會被傳遞。 EAAccessoryDidConnectNotification
和EAAccessoryDidDisconnectNotification
旨在通知應用程序關於用戶使用選取器對話進行的操作。它似乎並不是系統級別的通知,可以通過NSNotificationCenter
找到。
如果這是不正確的閱讀,請糾正我。
這不是答案。我面臨同樣的問題,您是否找到解決方案@DanShev? – Dany19