【问题标题】:EAAccessoryDidConnectNotification doesn't fireEAAccessoryDidConnectNotification 不会触发
【发布时间】:2016-04-24 08:28:51
【问题描述】:

我正在尝试了解 iOS 上的 CoreBluetooth 和外部附件。

首先,我尝试查看通过蓝牙通过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) 我做错了什么(两者中的可能性更大)。

是否需要安装特殊的 MFI 证书才能查看连接的附件列表?为什么不发送通知?

非常感谢任何建议/代码示例。

更新

最重要的是:仍然不知道为什么connectedAccessories 不起作用,所以非常需要关于这件作品的建议。

也就是说,重新阅读 Apple Developer 文档,我认为在这些类型的通知中使用 NSNotificationCenter.defaultCenter().addObserver 是不正确的/不可能的。

具体来说,文档指出在调用 showBluetoothAccessoryPickerWithNameFilter() 之前不会发送 EA 通知——例如EAAccessoryDidConnectNotificationEAAccessoryDidDisconnectNotification 旨在告知应用程序用户对选择器对话框所做的操作。好像不是NSNotificationCenter可以接收到的系统级通知。

如果阅读不正确,请纠正我。

【问题讨论】:

  • 这不是答案。我也面临同样的问题,@DanShev 你找到解决方案了吗?

标签: ios swift bluetooth eaaccessory


【解决方案1】:

你应该改变

selector: "somethingConnected:"

进入

selector: @selector(somethingConnected:)

,比它会触发。 更多详情,请参阅以下网站: Why does EAAccessoryDidConnectNotification occur twice?

【讨论】:

  • 看来你的代码是 Swift 的,哎呀。我犯了一个错误,很抱歉。但是提供的链接可能会解决您的问题。
猜你喜欢
  • 1970-01-01
  • 2019-08-07
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 2015-04-12
  • 2012-05-12
相关资源
最近更新 更多