- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我指定这样的服务时:
centralManager.scanForPeripherals(withServices:[BEAN_SERVICE_UUID],选项:[CBCentralManagerScanOptionAllowDuplicatesKey:true])
我确信我输入了正确的 BEAN_SERVICE_UUID
。事实证明,当我在前台执行该函数时,我可以获得 didDiscover 外围回调。
funccentralManager(_central:CBCentralManager,didDiscover外围设备:CBPeripheral,advertisementData:[字符串:任何],rssi RSSI:NSNumber){
打印(广告数据)
}
这是我的常规设置功能和我的 info.plist
那么,我必须做什么才能使 ScanForPeripheral/didDiscover 外设工作?
*已编辑经过多次测试,我发现我的应用程序可以进行后台扫描外围设备,但只是在安装应用程序后首次启动时(仅一次),之后 ScanForPeripheral/didDiscover 外围设备无法在后台工作。
最佳答案
当您在后台发现蓝牙外围设备时,CBCentralManagerScanOptionAllowDuplicatesKey
会自动忽略并设置为 false。话虽这么说,您只会在后台收到一个广告数据包,并且您必须对其执行一些操作。如果您不这样做,该外围设备将永远不会再次调用 didDiscover
方法。
对于 iBeacons,您应该使用 CoreLocation 框架。
关于ios - 后台没有获取 didDiscover 外围 ibeacon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44105995/
当我指定这样的服务时: centralManager.scanForPeripherals(withServices:[BEAN_SERVICE_UUID],选项:[CBCentralManagerS
我是一名优秀的程序员,十分优秀!