gpt4 book ai didi

ios5 - CoreBluetooth writeValue :forDescriptor: issue

转载 作者:行者123 更新时间:2023-12-04 12:59:13 25 4
gpt4 key购买 nike

我的 CoreBluetooth 应用程序需要在客户端特征配置描述符中启用“指示位”。这是我所做的:

  • 开始扫描
  • 开始连接设备
  • 调用 discoverServices
  • 调用 discoverCharacteristics在回调里面

    -(void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error
  • 调用 discoverDescriptorsForCharacteristic内部回调

    -(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
  • 内部回调

    -(void)peripheral:(CBPeripheral *)peripheral didDiscoverDescriptorsForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

  • 我打了电话:
            if ( [[descriptor.UUID representativeString] isEqualToString:@"2902" ] )
    {
    const unsigned char raw_data[] = {0x02};
    NSData *myData = [NSData dataWithBytes: raw_data length: 2];
    [self.cBCP writeValue:myData forDescriptor:descriptor];
    }

    但是我的应用程序在 writeVale 中崩溃了:。控制台中的错误消息是:

    Cannot write Client Characteristic Configuration descriptors using this method!



    任何的想法?谢谢

    最佳答案

    很老的问题,但由于没有回答,似乎方法 setNotifyValue(_:for:)将为您处理,这取决于以下特性:

  • 仅通知:将启用通知。
  • 仅指示:将启用指示。
  • 指示和通知:仅启用通知。

  • 因此,如果您需要启用指示,则该特性必须仅具有指示属性,并且应删除通知。

    我猜这背后的主要原因是指示要慢得多,因此除非需要指示,否则 iOS 将始终更喜欢最快的选项。

    Read more on the Apple docs

    关于ios5 - CoreBluetooth writeValue :forDescriptor: issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13561136/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com