1

我想要做的是在我的 Mac 上使用我的 iPhone 上的 Apple 通知中心服务 (ANCS)。为了让我的 Mac 出现在我 iPhone 的蓝牙设置中,我显然需要使用服务请求。

到目前为止,我尝试的是CBPeripheralManager在我的 Mac 上启动一个,将 ANCS 服务添加到它并开始做广告。这似乎没有,因为我的 Mac 没有出现在我的 iPhone 的蓝牙设置中。我还尝试过使用密钥CBCentralManager中的 ANCS UUID 启动并开始扫描,CBCentralManagerScanOptionSolicitedServiceUUIDsKey这也不起作用。

有谁知道如何做到这一点?我花了很多时间观看 WWDC 视频和浏览 Apple 的文档,但除了一些模糊地提到“服务请求”之外,我找不到它。

谢谢!

4

1 回答 1

5

当蓝牙 LE 设备发布广告时,它的广告数据包中包含某些数据。这可能会溢出到扫描设备可以请求的所谓的扩展查询响应 (EIR) 数据中。

要使用服务请求,必须包含密钥 0x15(标记“128 位服务请求 UUID 列表,请参见此处)和 ANCS UUID 7905F431-B5CE-4E99-A40F-4B1E122D00D0

我已经能够让它在嵌入式平台和 iOS 上工作,但还没有在 OSX 上尝试过。但是,您应该可以使用上面提到的密钥请求系统添加广告数据:

CBCentralManager *manager = [[CBCentralManager alloc] initWithDelegate:self 
                                                                 queue:nil];
[manager scanForPeripheralsWithServices:nil
                                options:@{
    CBCentralManagerScanOptionSolicitedServiceUUIDsKey:@[
        [CBUUID UUIDWithString:@"7905F431-B5CE-4E99-A40F-4B1E122D00D0"]]}];

这将传递一个包含该键的字典,该字典与 ANCS UUID 的单个 CBUUID 对象的数组配对。

于 2014-05-07T19:09:36.703 回答