I am using CBCentralManager to scan for nearby BLE devices. Below is sample code:-
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOff:
debugPrint("Central manager state is Powered Off")
case .poweredOn:
debugPrint("Central manager state is Powered On")
loggerUtils.log.debug("Central manager state is Powered On")
centralManager.scanForPeripherals(withServices: nil, options: nil)
case .resetting:
debugPrint("Central manager state is resetting")
case .unauthorized:
debugPrint("Central manager state is unauthorised")
case .unknown:
debugPrint("Central manager state is unknown")
case .unsupported:
debugPrint("Central manager state is unsupported")
default:
debugPrint("Central Manager state is unrecognised....enum raw value is \(central.state.rawValue)")
}
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
print("\n****\nPeripheral is \(peripheral.name ?? "No Name")\n*****\nAdvertisement data is \(advertisementData)\n*****\nRSSI is \(RSSI) ")
}
It shows the nearby speakers and other BLE enabled devices. But it is not showing any Android Phone whose bluetooth is powered on from settings option. I can see the android device in device list inSettings->Bluetooth in same iPhone.