【问题标题】:is it possible to connect bluetooth device, without pairing them in iOS?是否可以连接蓝牙设备,而无需在 iOS 中配对?
【发布时间】:2017-09-06 08:48:18
【问题描述】:

问题不在于BLE设备,它只是普通的蓝牙设备。

目前我的代码是这样工作的, 我调用函数:

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

        }];
    }

它会打开包含可用蓝牙设备列表的弹出窗口,然后我点击我想要的设备并获取一个对象并继续。

有什么方法可以跳过这个选择器步骤并直接获取我设备的对象?

【问题讨论】:

    标签: ios iphone bluetooth external-accessory


    【解决方案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,否则它将排队通知并更新连接的附件列表。

    【讨论】:

    • 能否说明固件如何实现自动后续连接?我直接与固件工程师合作,并希望为用户提供在使用我正在开发的 iOS 应用程序之前不必进入设置应用程序并手动连接到附件的功能。
    • @Audible 好吧,相关文档是 MFi 计划的一部分,所以我不能公开提供任何细节。但是,如果您或固件团队有权访问 MFi 附件接口规范,您将在第 52.4 节(在修订版 R27 中)找到一个起点。根据产品中使用的蓝牙芯片组,芯片组附带的库中可能还有一个函数可以执行此操作。
    • 我绝对了解严格的 MFi 准则,但是,这是一个很好的答案,谢谢!我可以访问 MFi 并将查看您引用的特定部分,我将与固件工程师和芯片制造商一起努力解决这个问题。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2012-05-07
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    相关资源
    最近更新 更多