Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何通过IOBluetooth/CoreBooth使用服务请求?_Ios_Macos_Core Bluetooth_Iobluetooth_Ancs - Fatal编程技术网

Ios 如何通过IOBluetooth/CoreBooth使用服务请求?

Ios 如何通过IOBluetooth/CoreBooth使用服务请求?,ios,macos,core-bluetooth,iobluetooth,ancs,Ios,Macos,Core Bluetooth,Iobluetooth,Ancs,我想做的是在我的Mac上使用iPhone上的苹果通知中心服务(ANCS)。为了让我的Mac电脑显示在iPhone的蓝牙设置中,我显然需要使用服务请求 到目前为止,我尝试的是在我的Mac电脑上启动一个cbperipheraldmanager,将ANCS服务添加到其中并开始广告宣传。这似乎不行,因为我的Mac电脑没有显示在iPhone的蓝牙设置中。我还尝试了启动一个CBCentralManager并开始扫描,在cbcentralmanagerscanoptions合并服务UUIDskey键中使用AN

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

到目前为止,我尝试的是在我的Mac电脑上启动一个
cbperipheraldmanager
,将ANCS服务添加到其中并开始广告宣传。这似乎不行,因为我的Mac电脑没有显示在iPhone的蓝牙设置中。我还尝试了启动一个
CBCentralManager
并开始扫描,在
cbcentralmanagerscanoptions合并服务UUIDskey
键中使用ANCS UUID,这也不起作用

有人对如何实现这一点有想法吗?我花了很多时间观看WWDC的视频和浏览苹果的文档,但除了一些含糊不清的提到“服务征集”,我找不到它


谢谢

蓝牙LE设备进行广告时,其广告包中包含特定数据。这可能会溢出到扫描设备可以请求的扩展查询响应(EIR)数据中

要使用服务请求,必须包括密钥0x15(标记“128位服务请求UUID列表,请参阅”)和ANCS UUID

我已经能够在嵌入式平台和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对象数组配对。

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

要使用服务请求,必须包括密钥0x15(标记“128位服务请求UUID列表,请参阅”)和ANCS UUID

我已经能够在嵌入式平台和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对象数组和该键。

大约一周前,我一直在玩这个,我无法让iPhone发布ANCS UUID,除非我运行一个发布另一个(任何其他)服务的应用程序。这对我来说似乎不正确,但这正是我所发现的——希望其他人能提供一些答案/见解。我想KhaosT已经完全分享了您正在寻找的代码,还有许多其他的实现。@Paulw11除了在手机上发布应用程序广告之外,别无他途。iOS自动请求ANC,并且ANC无法通过其他方式访问。你做得对。您可以使用任何应用程序,例如LightBlue进行广告宣传。广告内容一点也不重要,我自己也一直在努力。整个“服务征集”是一件难以捉摸的事情。到目前为止,我所知道的是:1)iOS ANCS无法工作(据报道已被苹果公司的某个人验证),2)OSX iOS ANCS可以工作,但在OSX可以看到ANCS之前,你需要在iOS上安装一个应用程序来宣传其他服务,3)“服务征集”可以工作,但我没有遇到任何人在OSX上做过(这里有一个-你会发现关于服务征集广告包结构的提示)大约一周前我一直在玩这个,我无法让iPhone为ANCS UUID做广告,除非我运行的是一个广告另一个(任何其他)的应用程序BLE服务。这对我来说似乎不合适,但我发现了——希望其他人能提供一些答案/见解。我猜KhaosT已经分享了您正在寻找的代码,还有许多其他实现。@Paulw11除了在手机上发布应用程序广告外,没有其他方法。iOS自动请求ANCS,ANCS是not可以通过其他方式访问。你做得对。你可以使用任何应用程序,例如LightBlue来做广告。广告内容一点都不重要。我一直在尝试自己做这件事。整个“服务征集”的事情是一件难以捉摸的事情。1.到目前为止,我知道的是:1)iOS ANCS无法工作(据报道,已被苹果的某个人验证过),2)OSX iOS ANCS可以工作,但在OSX可以看到ANCS之前,你需要在iOS上安装一个应用程序来宣传其他一些服务,3)“服务征集”可以工作,但我没有遇到任何人在OSX上这样做(这里有一个-你会发现关于服务征集广告包结构的提示)