我目前正在使用swift制作一款能够生成附近蓝牙设备列表的应用。但是,我找不到任何使用swift这样做的文档。所有文件都在Objective C中,我想知道我是否可以制作一个客观的C文件并直接连接到故事板? (我的项目文件很快)。
另外,我是否必须在外面添加任何其他库? (例如:serialGATT)或coreBluetooth.framework足够好吗?
答案 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.