我目前正在使用swift制作一个可以在附近生成蓝牙设备列表的应用。但是,我找不到任何使用swift做到这一点的文档。所有文件都在Objective C中,我想知道是否可以制作一个 objective-c 文件并直接连接到故事板? (我的项目文件很快)。

另外,我是否必须从外部包括其他任何库? (例如:serialGATT)还是coreBluetooth.framework足够好吗?

最佳答案

您必须导入CoreBluetooth

import CoreBluetooth

CBCentralManagerDelegate添加到您的控制器。 (对于一个简单的应用程序,我将其附加到我的View Controller中)
    class ViewController: UIViewController, CBPeripheralDelegate, CBCentralManagerDelegate {

您应该创建一个局部变量centralManager(或类似变量),然后在viewDidLoad函数中进行初始化
    centralManager = CBCentralManager(delegate: self, queue: nil)

最后,您可以创建一个名为centralManagerDidUpdateState的新函数,该函数将在蓝牙状态更改时充当回调(始终在应用程序启动时调用。
    // If we're powered on, start scanning
        func centralManagerDidUpdateState(_ central: CBCentralManager) {
            print("Central state update")
            if central.state != .poweredOn {
                print("Central is not powered on")
            } else {
                print("Central scanning for", ParticlePeripheral.particleLEDServiceUUID);
                centralManager.scanForPeripherals(withServices: [ParticlePeripheral.particleLEDServiceUUID],
                                                  options: [CBCentralManagerScanOptionAllowDuplicatesKey : true])
            }
        }

重要的调用是centralManager.scanForPeripherals这将启动扫描过程。就我而言,我要过滤的广告包中仅包含ParticlePeripheral.particleLEDServiceUUID的设备。

那应该让您扫描并继续前进。我写了一个完整的端到端教程,介绍如何将Swift与蓝牙配合使用。它将更加详细。 Here it is.

关于ios - 快速找到附近的蓝牙设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30974189/

10-13 09:17