将 iOS 应用重新连接到配对的蓝牙设备?

Posted

技术标签:

【中文标题】将 iOS 应用重新连接到配对的蓝牙设备?【英文标题】:Reconnecting an iOS app to a paired BlueTooth device? 【发布时间】:2015-07-16 02:37:52 【问题描述】:

如您所知,在一段时间不活动后,蓝牙设备会与 iPhone 断开连接。然后,用户必须返回“设置”才能重新连接设备。

1 - ios 应用程序(当它进入前台时)是否可以在没有任何用户输入的情况下强制重新连接到配对的蓝牙设备?

2 - 是否可以强制重新连接到已配对的蓝牙设备,但在 iBeacon 信号(匹配 UUID)的应用唤醒状态期间?

【问题讨论】:

我看到你标记了这个 iBeacon,但在问题中没有提到。澄清一下,当您说 BLE UUID 时,您是指 GATT Service UUID 还是 iBeacon Proximity UUID? 我的意思是 iBeacon Proximity UUID。我重写了我的第二个问题以使其更清楚。 【参考方案1】:

    是的,您可以使用CoreBluetooth API 连接到蓝牙 LE 设备而无需用户输入。它不必像蓝牙经典设备那样“配对”。为此,蓝牙 LE 设备应公开移动应用程序可以识别的 GATT 服务 UUID,当它发现此服务 UUID 时,它可以简单地以编程方式连接。

    当您使用CoreLocation API 根据 iBeacon 检测唤醒您的应用时,应用会暂时启动到后台。您可以向用户发送本地通知以尝试让用户点击它并将应用程序带到前台,但如果用户不这样做,应用程序后台规则仍然适用。

将 #1 和 #2 放在一起,您应该了解 Apple 关于在后台使用 CoreBluetooth 的规则。请参阅 Apple 的文档以获取 The bluetooth-central Background Execution Mode。如果您获得适当的应用权限,则可以在后台建立连接。

【讨论】:

谢谢大卫!顺便说一句,您的意思是我的应用程序为了在后台建立连接,应该获得用户的事先许可(从我的应用程序内的弹出窗口中)还是应该获得 Apple 的特殊应用程序许可?跨度> 当您在 iOS 应用的 plist 文件中请求 bluetooth-central 权限时,当用户首次启动应用时,系统会提示用户接受此权限。用户必须接受此权限,应用才能在后台连接到外围设备。用户还可以在应用设置中打开/关闭此权限。

以上是关于将 iOS 应用重新连接到配对的蓝牙设备?的主要内容,如果未能解决你的问题,请参考以下文章

自动将蓝牙连接到最后连接的设备

配对蓝牙设备有优势吗?

通过蓝牙/蓝牙 LE 在 iPhone 应用程序中配对和连接

在范围内时自动连接到配对的蓝牙设备

iOS 蓝牙与设备配对和取消配对

Windows 10连接到蓝牙经典设备而不进行配对