ios - 后台 CBPeripheral 无法保持可读性
问题描述
我有一个应用程序可以播放CBPeripheral
少量文本。我使用bluetooth-peripheral
后台模式允许它在后台广播。
当我从另一台设备扫描时,在前台它工作正常。我检测外围设备、连接、发现服务然后从服务中读取数据。
然而,在后台,有些事情不太对劲。我用我的服务扫描外围设备,它发现它很好。我连接也很好。然后,我的服务在调用回调discoverServices
时也很顺利。didDiscoverServices
然而在这个回调中,外设没有服务!peripheral.services
是空的。如果没有这项服务,它就不会走到这一步,那又是什么呢?在error
这个回调中也是nil
CBPeripheral
在 iOS 12 上广播时一切正常
编辑 ----- 说得太早了,现在我的 iOS 12 设备似乎已经开始出现同样的症状。片刻之后,CBPeripheral 不起作用。
解决方案
通过在CBAdvertisementDataLocalNameKey
调用. 如果您希望在后台继续广播,似乎需要此密钥。苹果文档没有提到这一点。startAdvertising
CBPeripheralManager
CBPeripheral
推荐阅读
- java - 如何修复这个 j java.lang.ClassCastException: cannot be cast to
- firebase - Firebase 托管构建失败,因为 process.env.ci 设置为 true
- python - 如果元素在列表中,则在 Python 中无法正常工作
- mysql - 更改“Mysql Row size too large”的限制
- c# - c# 中 ZIP 文件的存档意外结束
- c++ - 如何使用 cl.exe 编译 Google 测试代码
- android - 移动食品计划 Android 应用程序(使用 Kotlin)
- node.js - Node.js:附加到可读流同时通过管道传输到可写流?
- python - 有人可以解释为什么我收到错误:“IndentationError: unindent does not match any external indentation level”吗?
- java - 有没有办法在应用程序进入后台时检索图像并在不丢失之前选择的图像的情况下将其带回来