我想用bluetooh获取附近设备的mac地址
这是我想要的格式。
铁:4F:AD:37:67:5D
我的代表中有完全不同的mac地址格式
5962C58F-BAD1-65D4-DCAC-06BBB06307C6
这些是我正在使用的代表
中央管理局
功能中心管理器(中心:
CBCentralManager,发现外围设备:CBPeripheral,
广告数据:[String:Any],rssi rssi:NSNumber)
这是我的密码
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
if(!peripherals.contains(peripheral)) {
peripherals.append(peripheral)
}
let identifier = "\(peripheral.identifier)"
if let data = identifier.data(using: .utf8) {
let mac_address = data.hexEncodedString().uppercased()
let macAddress = mac_address.separate(every: 2, with: ":")
if let name = peripheral.name {
print("\(name) \n\(peripheral.identifier)\nMAC_ADDRESS: \(macAddress)")
}
}
}
func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) {
mainPeripheral = nil
print("Disconnected" + peripheral.name!)
}
func centralManagerDidUpdateState(_ central: CBCentralManager) {
print(central.state)
switch central.state {
case .unknown:
print("unknown")
case .resetting:
print("resetting")
case .unsupported:
print("unsupported")
case .unauthorized:
print("unauthorized")
case .poweredOff:
print("poweredOff")
UIView.animate(withDuration: 0.7) {
self.lblBluetoothAlert.alpha = 1.0
}
stopScanForBLEDevices()
case .poweredOn:
UIView.animate(withDuration: 0.7) {
self.lblBluetoothAlert.alpha = 0.0
}
print("poweredOn")
scanBLEDevices()
default:
print("default")
}
}
最佳答案
核心蓝牙不提供对外设MAC地址的任何访问。
为了达到您在注释中概述的要求,即根据后端数据库中的数据识别外设,您需要外设也通过特征公开其标识符(可能是其MAC地址,可能是其他唯一标识符)。然后,您的应用程序可以连接到目标外设并询问特征。
关于swift - 附近设备的iOS蓝牙mac地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58169563/