今天公司有同事要求手机连接一个蓝牙设备, 要求是手机自动连接过去.简单翻了一下Apple的文档还找了几个网页,觉得了然于心了.于是先写出了进行扫描的代码:
1 |
|
真机运行, 发现打印了 CBCentralManagerStatePoweredOn
,但是之后就没有后文了. 发现外设的代理方法没有调用.但是直接通过手机进行扫描,能够发现设备.反复尝试,还是没有得到预期的结果.
后来想到,自己尝试在手机上反复开关蓝牙让列表刷新,注意到蓝牙开关是有一定时间的.结合自己在代码中:
1 | bleManager_ = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; |
初始化了直接就开始扫描, 可能是由于蓝牙的Manager还没有准备好吧,于是尝试修改这个开始扫描到判定Manager的状态为PowerOn中:
1 | case CBCentralManagerStatePoweredOn: { |
再进行打印,发现终于出现了各个外设了.