用swift寻找附近的蓝牙设备

时间:2015-06-22 07:26:55

标签: ios swift bluetooth

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

另外,我是否必须在外面添加任何其他库? (例如:serialGATT)或coreBluetooth.framework足够好吗?

1 个答案:

答案 0 :(得分:1)

您必须导入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.