ios – 核心蓝牙 – 定范设备的不间断RSSI更新

ios – 核心蓝牙 – 定范设备的不间断RSSI更新,第1张

概述我刚刚开始使用iOS的核心蓝牙框架,我正在开发一个需要不断扫描BLE设备的应用程序,以便每隔几分钟可以检索其RSSI号码. 目前我有: manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];NSDictionary *options = [NSDictionary dictionaryWithObjectsAnd 我刚刚开始使用iOS的核心蓝牙框架,我正在开发一个需要不断扫描BLE设备的应用程序,以便每隔几分钟可以检索其RSSI号码.

目前我有:

manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:FALSE],CBCentralManagerScanoptionAllowDuplicatesKey,nil];[manager scanForperipheralsWithServices:nil options:options];

这将启动我的应用程序扫描BLE设备,并在发现设备时调用此委托方法:

- (voID)centralManager:(CBCentralManager *)central dIDdiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {    NSLog(@"DID discover peripheral. peripheral: %@ RSSi: %@,UUID: %@ advertisementData: %@ ",peripheral,RSSI,peripheral.UUID,advertisementData);    //Do something when a peripheral is discovered.    RSSiLabel.text = [RSSI stringValue];    [manager retrIEveperipherals:[NSArray arrayWithObject:(ID)peripheral.UUID]];}

这个方法可以得到我可以显示的外设的RSSI号码.最后一行然后调用这个委托方法:

- (voID) centralManager:(CBCentralManager *)central dIDRetrIEveperipherals:(NSArray *)peripherals {    NSLog(@"Currently kNown peripherals :");    int i = 0;    for(CBPeripheral *peripheral in peripherals) {        NSLog(@"[%d] - peripheral : %@ with UUID : %@",i,peripheral.UUID);    }     NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:FALSE],nil];     [manager scanForperipheralsWithServices:nil options:options];}

这个代码似乎正在工作,大概每1分钟进行一次扫描,但我不完全知道为什么它工作…

核心蓝牙的文档相当稀疏,如果有任何人有任何想法,如何做到这一点,或有一个更好的方式来做我想要完成的事情,我会感谢帮助!

解决方法 您是否尝试将扫描选项更改为YES?
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber  numberWithBool:YES],nil];[manager scanForperipheralsWithServices:nil options:options];

如果你这样做,你会得到你的“dIDdiscoverPeripheral”回调与你的iPhone看到的每个广告数据包,通常是大约每100ms(虽然我看到这个回调时间变化相同的设备很多).这包括它看到的每个设备的RSSI.

这应该比您的〜1分钟更新速度快很多.

总结

以上是内存溢出为你收集整理的ios – 核心蓝牙 – 定范设备的不间断RSSI更新全部内容,希望文章能够帮你解决ios – 核心蓝牙 – 定范设备的不间断RSSI更新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1112894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存