在 iOS 13 上未调用 didConnectPeripheral 委托

Posted

技术标签:

【中文标题】在 iOS 13 上未调用 didConnectPeripheral 委托【英文标题】:didConnectPeripheral delegate is not being called on iOS 13 【发布时间】:2020-02-14 09:18:32 【问题描述】:

didConnectPeripheral 委托在 ios 13 版本上没有被调用。它在 iOS 13 下运行良好。是否需要在 iOS 13 中添加任何内容才能与设备连接?

centralManagerDidUpdateState 正在更新,但 connect 没有调用。我不知道为什么。

我尝试在 Info.plist 文件中添加“始终需要蓝牙”。

【问题讨论】:

【参考方案1】:

从 iOS 13 开始,当应用尝试扫描或连接蓝牙设备时,系统会自动提示用户授予应用使用蓝牙的权限。通用对话框中的消息可以通过 Info.plist 中的以下条目添加自定义消息:

<key>NSBluetoothAlwaysUsageDescription</key>
<string>This app uses bluetooth to perform XYZ functions.</string>

如果用户在显示此对话框时拒绝许可,应用程序将无法扫描或连接到蓝牙设备。可能是您的应用显示了此对话框,而您没有注意到并意外拒绝了权限。

要检查这一点,您可以转到“设置”>“隐私”>“蓝牙”并检查您的应用是否被授予蓝牙权限。

【讨论】:

已添加但未使用,我认为需要在状态更新后添加“registerForConnectionEvents”?

以上是关于在 iOS 13 上未调用 didConnectPeripheral 委托的主要内容,如果未能解决你的问题,请参考以下文章

将旋转到 iOS 8 上未调用的界面方向

如何在 ios 设备上未启动本机应用程序时进行调试

Swift/iOS 子视图在主线程上未立即显示

使用新的 facebook-ios-sdk 在 iphone 上未显示 Facebook Connect 登录对话框

如果 iOS 设备上未安装应用程序,通用链接将不起作用

在 iPad 上未调用 viewDidAppear 和 viewWillAppear