微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IOS 与 OSX BLE:实例化 CBCentralManager - 为 iOS 编码

如何解决IOS 与 OSX BLE:实例化 CBCentralManager - 为 iOS 编码

我正在学习 iOS 与 OSX BLE。
我注意到我无法在 iOS 中实例化 CBCentralManager 因为:

[CoreBluetooth] xpc connection invalid
Unsupported

与通过 OSX 相比,因为 iOS 平台没有“应用沙盒”特性,我可以在其中设置为 BLE 使用。

这是我的 iOS 代码

import SwiftUI

struct ContentView: View {
    @Observedobject var bleManager = BLEManager()

    var body: some View {
        ZStack {
            Color("Background")
            Text("Hello")
        }
    }
}

class BLEManager: NSObject,ObservableObject,CBCentralManagerDelegate {
    var centralManager: CBCentralManager!

    override init() {
        super.init()
        centralManager = CBCentralManager(delegate: self,queue: nil)
    }

    public func centralManagerDidUpdateState(_ central: CBCentralManager) {
        switch central.state {
        case .poweredOn:
            print("power is on")

        case .resetting:
            print("Resetting")
        case .unsupported:
            print("Unsupported")
        case .unauthorized:
            print("UnAuthorized")
        case .unkNown:
            print("UnKNown")
        case .poweredOff:
            print("Powered OFF")
        @unkNown default:
            print("**** Default ****")
        }
    }
}

这是必需的 .plist 条目:

enter image description here

我知道 iPhone 可以是 BLE 中心或外围设备。

简单问题:如何为真正的 iOS CBCentralMaster 编码?

我只是在这里采取一些小步骤:为外围检测编码。
...然后从那里继续。

解决方法

您是在模拟器上运行(不受支持)而不是在设备上运行?

,

查看主要的 Core Bluetooth 文档:

如果它的 Info.plist 不包含它需要访问的数据类型的使用说明键,你的应用就会崩溃。要访问 iOS 13 或之后链接的应用程序上的核心蓝牙 API,请包含 NSBluetoothAlwaysUsageDescription 键。在 iOS 12 及更早版本中,包含 NSBluetoothPeripheralUsageDescription 以访问蓝牙外设数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。