首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS CoreBluetooth CBPeripheral didReceiveReadRequest

iOS CoreBluetooth CBPeripheral didReceiveReadRequest
EN

Stack Overflow用户
提问于 2015-11-11 09:26:10
回答 1查看 695关注 0票数 0

我有两个项目。一个起中心作用,另一个起外围作用。中央已经连接到外围,然后中央调用方法readValueForCharacteristic。不是立即,而是在大约5-10秒之后,外设调用委托方法- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveReadRequest:(CBATTRequest *)request.为什么会有延迟?怎样才能消除延误呢?有什么想法吗?我已经试了将近一个星期了。感谢每一个帮助,谢谢

中央

代码语言:javascript
复制
- (void)sendBtnClick:(id)sender
{
    USCPeerBtn *btn = (USCPeerBtn *)sender;
    CBPeripheral *peripheral = btn.connectedPeripheral;
    if (!peripheral) {
        return;
    }

    [self.charachterMDict enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {

        if (key == peripheral) {
            [(CBPeripheral *)key readValueForCharacteristic:(CBCharacteristic *)obj]; // read
            *stop = YES;
        }
    }];
}

围周

代码语言:javascript
复制
// CBPeripheralManagerDelegate
- (void)peripheralManager:(CBPeripheralManager *)peripheral  didReceiveReadRequest:(CBATTRequest *)request
{
    NSLog(@"didReceiveReadRequest");
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-11 11:02:59

在方法respondToRequest:中调用- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveReadRequest:(CBATTRequest *)request

代码语言:javascript
复制
// CBPeripheralManagerDelegate
- (void)peripheralManager:(CBPeripheralManager *)peripheral     didReceiveReadRequest:(CBATTRequest *)request
{
    [peripheral respondToRequest:request withResult:CBATTErrorSuccess];
    NSLog(@"didReceiveReadRequest");
}  

@Paulw11 11,谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33647572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档