大佬教程收集整理的这篇文章主要介绍了ios – 核心蓝牙 – 定范设备的不间断RSSI更新,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我有:
@H_978_4@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分钟进行一次扫描,但我不完全知道为什么它工作…
核心蓝牙的文档相当稀疏,如果有任何人有任何想法,如何做到这一点,或有一个更好的方式来做我想要完成的事情,我会感谢帮助!
NSDictionary *options = [NSDictionary DictionaryWithObjectsAndKeys:[NSnumber numberWithBool:YES],nil]; [manager scanForPeripheralsWithservices:nil options:options];
如果你这样做,你会得到你的“didDiscoverPeripheral”回调与你的iPhone看到的每个广告数据包,通常是大约每100ms(虽然我看到这个回调时间变化相同的设备很多).这包括它看到的每个设备的RSSI.
这应该比您的〜1分钟更新速度快很多.
以上是大佬教程为你收集整理的ios – 核心蓝牙 – 定范设备的不间断RSSI更新全部内容,希望文章能够帮你解决ios – 核心蓝牙 – 定范设备的不间断RSSI更新所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。