Вы можете использовать CBCentralManager и добавить методы CBCentralManagerDelegate , чтобы увидеть, когда периферийное устройство подключено / отключено.
centralManagerDidUpdateState
предоставит информацию о состоянии Bluetooth вашего устройства iOS.
didConnectPeripheral
и didDisconnectPeripheral
могут использоваться для мониторинга подключенных устройств, когда вы подключаетесь к устройству в вашем приложении с помощью connect
на вашем CentralManager (см. Пример ниже).
Если вам известен идентификатор устройства, которое вы хотите проверить, вы можете использовать CBCentralManager retrievePeripheralsWithIdentifiers
, чтобы проверить состояние подключения для устройств, которые подключены независимо от вашего приложения.
class ViewController: UIViewController, CBCentralManagerDelegate {
var centralManager:CBCentralManager!
override func viewDidLoad() {
super.viewDidLoad()
centralManager = CBCentralManager.init(delegate: self, queue: DispatchQueue.main)
}
func centralManagerDidUpdateState(_ central: CBCentralManager) {
if central.state == CBManagerState.poweredOn {
centralManager.scanForPeripherals(withServices: nil, options: nil)
}
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
centralManager.connect(peripheral, options: nil)
}
func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) {
print("peripheral \(String(describing: peripheral.name)) connected")
}
func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) {
print("peripheral \(String(describing: peripheral.name)) disconnected")
}
}