scanForPeripheralsWithServices

scanForPeripheralsWithServices

当我使用iOS蓝牙时,代码如下:

static NSString * const kServiceUUID = @"1802";
[self.manager scanForPeripheralsWithServices:@[ [CBUUID UUIDWithString:kServiceUUID] ] options:@{CBCentralManagerScanOptionAllowDuplicatesKey : @NO }];

为什么没有回应?我在方法中尝试了各种参数对
scanForPeripheralsWithServices
我检查了这个问题:
How to get list of available Bluetooth devices?

我的设备是装有iOS 6的iPod touch 5(越狱)。我已经测试了一些蓝牙4.0设备。谁能告诉我为什么?

最佳答案

使用nil服务进行扫描,以检查您要寻找的外围设备是否实际在宣传任何东西。调用centralManager:didDiscoverPeripheral:advertisementData:RSSI:时, checkout 广告数据。只需NSLog()即可。如果其中未包含0x1802,则表示外围设备未在宣传此服务,扫描仪将无法通过这种方式找到它。若要更正此问题,请将服务包括在广告设置中:

NSDictionary *advData =
 @{CBAdvertisementDataServiceUUIDsKey:@[[CBUUID UUIDWithString:@"1802"]]};
[peripheralManager startAdvertising:advData];

10-08 06:11