iOS swift5 获取系统或其他app已经连接的蓝牙设备

chatGPT答案

要获取系统或其他app已连接的蓝牙设备,你可以使用CoreBluetooth框架提供的CBCentralManager类。下面是使用Swift 5的示例代码:

import CoreBluetooth

class BluetoothManager: NSObject, CBCentralManagerDelegate {
    
    

    var centralManager: CBCentralManager!
    
    override init() {
    
    
        super.init()
        centralManager = CBCentralManager(delegate: self, queue: nil)
    }
    
    func centralManagerDidUpdateState(_ central: CBCentralManager) {
    
    
        if central.state == .poweredOn {
    
    
            // 扫描已连接的外设
            let connectedPeripherals = centralManager.retrieveConnectedPeripherals(withServices: [/* 服务UUID */])
            for peripheral in connectedPeripherals {
    
    
                print(peripheral.name)
                // 如果需要,你可以保存已连接的外设以供后续使用
            }
        }
    }
}

在上面的示例中,当CBCentralManager对象初始化时,你必须提供一个代理对象来接收蓝牙中央管理器的事件通知。然后,你可以实现centralManagerDidUpdateState方法,在蓝牙中央管理器状态更新时调用该方法。在该方法中,你可以使用retrieveConnectedPeripherals(withServices:)方法获取已连接的外设列表。需要注意的是,你需要指定要扫描的服务的UUID,这样你才能获取到对应服务的已连接外设。

本人实例

参考博客

ios蓝牙扫描指定的设备scanForPeripheralsWithServices(过滤掉其他设备,只留下自家设备) - csdn
iOS蓝牙开发连接系统或其他APP已经连接、配对成功的蓝牙设备 - CSDN

猜你喜欢

转载自blog.csdn.net/baidu_40537062/article/details/130698427
今日推荐