didDiscoverPeripheral没有调用

时间:2014-02-06 15:09:34

标签: ios bluetooth core-bluetooth

我需要通过蓝牙将ASCII码发送到第三方设备。 希望有可能与spp有关。我的术语可能是错的。我不太了解这个编程领域。

centralManagerDidUpdateState我正在扫描外围设备:

CBUUID *cbuuidService = [CBUUID UUIDWithString:@"0x1101"];
NSArray *service = @[ cbuuidService ];
NSDictionary *options = @{ CBCentralManagerScanOptionAllowDuplicatesKey : @YES };
[central scanForPeripheralsWithServices:service options:options];

didDiscoverPeripheral从未打过电话。

我尝试在没有服务的情况下进行扫描,它具有相同的效果。

我做错了什么?我需要cbuuid什么,我在哪里可以找到它?感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

相信CoreBluetooth非常难以使用。

使用LGBluetooth(它可以通过CoreBluetooth)而不是使用那个混乱的框架。

    [[LGCentralManager sharedInstance] scanForPeripheralsByInterval:10
                                                         completion:^(NSArray *peripherals)
     {
     }];

这是一个按间隔扫描的例子。

检查出来 https://github.com/l0gg3r/LGBluetooth

答案 1 :(得分:1)

您需要将一个设备作为中心(您可以使用),将一个设备作为外围设备。因此,假设您使用MB Air作为中心,您需要在iPad上启动CBPeripheralManager并让它发布并宣传服务。然后你应该能够在MB上发现它。

我想最简单的方法是获得一个可用的外围设备(例如心率带),这样您就可以熟悉CBCentralManager的使用方法。然后你就可以开始实现你自己的外围设备。

PS:我不确定将0x放在标识符的开头是否正确。