当我使用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];