当前位置:首页 > 技术心得 > 正文内容

ios ble:didDiscoverPeripheral没有回调

xjtudll10年前 (2016-08-12)技术心得15800

参考资料:

http://stackoverflow.com/questions/26320578/diddiscoverperipheral-not-been-called-after-advertising-another-ios-device

问题:

启动scan之后,didDiscoverPeripheral没有回调

原因:

在BLE Central还没有power on(CBCentralManagerStatePoweredOn)之前,就启动了scan。

当系统是ios7时,xcode仅仅是给个warning,但是程序能正常运行。

在ios8及之后,代码将不会正常工作

这种问题尤为常见于从ios7升级系统。

解决办法:

在BLE central power on之后,再启动扫描

- (void) centralManagerDidUpdateState:(CBCentralManager *)central

{  

    if (central.state == CBCentralManagerStatePoweredOn)

    {

        //在这里启动扫描

    }

    else if(central.state == CBCentralManagerStatePoweredOff)

    {

    }

}

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/415/

标签: iosBLE
分享给朋友:

“ios ble:didDiscoverPeripheral没有回调” 的相关文章

IAR如何生成Hex文件

IAR如何生成Hex文件

MSP430在用JTAG下载的时候,Hex文件是用不上的。但是如果用Proteus仿真的话(只有Proteus 7.6及其以上版本才支持MSP430仿真),只支持Hex文件仿真,所以有必要输出Hex文件。 打开IAR的工程选项,选中左边栏的Linker,如图所示。 勾中【Output file】...

OSX:如何移动NSWindow而同时不移动其子Window

参考资料: http://stackoverflow.com/questions/7657132/how-to-move-an-nswindow-without-moving-child-nswindows 问题: 应用程序有个主window,在主window里,新建了一个子window。 每当移动...

NSTextfield只允许输入数字

.wiz-todo, .wiz-todo-img {width: 16px; height: 16px; cursor: default; padding: 0 10px 0 2px; vertical-align: -10%;-webkit-user-select: none;} .wiz-t...

Multisim运放输出超过电源电压解决

Multisim运放输出超过电源电压解决

在使用Multisim自带库里的运放的时候,例如LM324M,发现一个问题,运放的输出电压能达到几百V甚至几千V,而电源明显只有几V而已。输出电压超过电源电压,理论上是不可能的,实际上也是不可能的,那么肯定就是仿真有误了,其实根本原因是Multisim里面运放是三脚模型,根本没考虑电源。我们查看LM...

Keil查看编译后的汇编代码

Keil查看编译后的汇编代码

在使用Keil编译C51时,一般情况下,大家都不去看汇编代码。但在某些特殊情况下,查看汇编代码就是有必要了。 (1)确认C代码是否正确 (2)研究算法 查看汇编代码前的某些准备工作是必须的:你得有工程,并确定程序编译无误。在查看汇编代码前,编译一次。 编译OK后,点Debug 有可能会提示你没有...

苹果电脑备份还原Windows操作系统

苹果电脑备份还原Windows操作系统

苹果电脑可以通过BootCamp安装Windows系统(毕竟,有很多“Just For Windows”和“IE Only”的软件和服务--比如国内的网上银行)。但是,苹果电脑的macOSX操作系统及其下的文件可以通过Time Machine备份、还原,通过BootCamp装的Windows系统及其...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。