我正在开发一个应用程序,需要知道特定设备是否已连接到我的手机以执行下一个任务。你能告诉我我该怎么办?我试过使用CoreBluetooth,但我找不到任何功能。我不知道CoreBluetooth是否适合使用它。
我需要有这个数据,因为我的代码没有找到我的蓝牙车(我想因为没有BLE,我不知道为什么)而且我必须通过手机的设置/蓝牙连接。这是代码。
import UIKit
import CoreBluetooth
class ListController: UITableViewController, CBCentralManagerDelegate, CBPeripheralDelegate{
var centralManager : CBCentralManager!
var sensorTag : CBPeripheral?
override func viewDidLoad()
{
super.viewDidLoad()
centralManager = CBCentralManager(delegate: self, queue: nil)
}
// MARK: - Bluetooth
func centralManagerDidUpdateState(_ central: CBCentralManager)
{
switch central.state
{
case .poweredOn:
debugPrint("Bluetooth on this device is currently powered on.")
centralManager.scanForPeripherals(withServices: nil, options: nil)
case .poweredOff:
debugPrint("Bluetooth on this device is currently powered off.")
case .unsupported:
debugPrint("This device does not support Bluetooth Low Energy.")
case .unauthorized:
debugPrint("This app is not authorized to use Bluetooth Low Energy.")
case .resetting:
debugPrint("The BLE Manager is resetting; a state update is pending.")
case .unknown:
debugPrint("The state of the BLE Manager is unknown.")
}
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber)
{
if peripheral.name != nil
{
debugPrint((peripheral.name)!)
}
}
CoreBluetooth只能支持BLE(上面的蓝牙4.0)。 CoreBluetooth没有任何蓝牙握手协议。我的意思是你可以在电话设置屏幕上看到那些设备以外的BLE并且能够连接。
核心蓝牙仅允许您使用GATT配置文件与蓝牙低功耗设备通信。但是,您可以通过外部附件框架进行通信,允许使用串行端口协议(SPP)等配置文件与“传统”蓝牙设备进行通信。但是对于这个框架必须要有MFi