【问题标题】:didDiscoverServices not called未调用 didDiscoverServices
【发布时间】:2016-01-06 02:50:29
【问题描述】:

我们尝试将蓝牙设备的数据读取到 iPhone。我们流了这个
https://github.com/paulw11/BTBackground 。我们得到了设备名称和设备 uuid 号和连接也很好。但是我们未能获取数据。请指导我们

    -(void) centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral {
        self.connectedPeripheral=peripheral;
        NSLog(@"Connected to %@(%@)",peripheral.name,peripheral.identifier.UUIDString);
        peripheral.delegate=self;
        NSLog(@"DeviceInfoUUID %@",_deviceInfoUUID);

        [peripheral discoverServices:@[self.deviceInfoUUID]];
//we tried this also 
       // [peripheral discoverServices:nil];

    }
    #pragma mark - CBPeripheralManager delegate methods


    -(void) peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error {

         NSLog(@"peripheral.services    %@",peripheral.services);
        for (CBService *service in peripheral.services) {
            NSLog(@"Discovered service %@",service.description);
            if ([service.UUID isEqual:self.deviceInfoUUID]) {

                [peripheral discoverCharacteristics:nil forService:service];
            }
        }

    }

请指导我们代码有什么问题。我们是新人

【问题讨论】:

  • 周边有UUIDself.deviceInfoUUID的服务吗?有广告吗?
  • @Larme 当我们仅打印 deviceinforUUID“设备信息”时
  • @Larme 我们尝试了 [peripheral discoverServices:nil];也没有运气
  • 正如@Larme 所说,您的设备宣传哪些服务?您是否尝试过应用商店中的 LightBlue Explorer 应用?
  • LightBlue Explorer 是查看您的设备所宣传内容的好方法。如果无法连接,则您的设备可能有问题

标签: objective-c bluetooth-lowenergy core-bluetooth ios-bluetooth bluetooth-peripheral


【解决方案1】:

您是否使用服务扫描外围设备,代码如下:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
    [self.bluetoothManager scanForPeripheralsWithServices:nil options:options];

【讨论】:

    猜你喜欢
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    相关资源
    最近更新 更多