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

ios ble:didDiscoverPeripheral没有回调

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

参考资料:

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://www.xjtudll.cn/Exp/415/

标签: iosBLE
分享给朋友:

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

Xcode Error:loaded some nib but the view outlet was not set解决

Xcode Error:loaded some nib but the view outlet was not set解决

当使用 initWithNibName 函数, 并使用由nib文件生成的ViewController 的view属性时候,遇到这个问题。 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException'...

Android-如何关闭AlertDialog.Builder对话框

AlertDialog.Builder对话框没有类似finish()或者dismiss()这样的方法。 但是它的父类AlertDialog有dismiss方法,而且AlertDialog.Builder在.show()的时候会得到一个AlertDialog对象,我们就可以用dismiss方法将该Bu...

MSP430 C语言的关键字扩展

1.interrupt 用于中断函数。 定义如下: 语法: interrupt void 函数名()          或者        interrupt[中断向量]void...

ESD保护方法

ESD保护方法

为了给电子系统提供ESD保护,可以从不同的角度来着手。 一种方法是在半导体芯片内建ESD保护架构。不过,日趋缩小的CMOS芯片已经越来越不足以承受进行内部2 kV等级的ESD保护所需要的面积。 其次,也可以在物理电路设计方面下功夫,较敏感的电路元件应该尽量远离通孔或接缝处,如果可能的话,线缆连接...

DB9串口引脚定义

DB9串口引脚定义

DB9针式(DB9/F 公)  DB9孔式(DB9/M 母)DB9串口引脚定义如下:  针脚 功能 针脚 功能...

Word表格显示/隐藏虚框

Word表格显示/隐藏虚框

Word里,可以将表格的某些行(列)的边框线设置为“无”,但是在编辑界面,还是可以看到边框线的,只是颜色显示为灰色。如果想让那些设置为“无”了的边框线确实不显示,点击“隐藏虚框”就可以了。 这个操作说起来简单,但是得找到在菜单在...

发表评论

访客

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