Tra*_*uy9 5 xcode bluetooth ios eaaccessory swift
我有一个iOS应用程序.我可以成功连接到我的配对EAAccessory(蓝牙经典).我能够从通过EAAccessory对象公开的设备中提取信息.我注意到的一件事是配对设备的名称(在我的设置 - >蓝牙 - >我的设备列表中)与我的EAAccessory对象公开的设备名称不匹配.我觉得这很奇怪.
有没有办法通过我的iOS应用程序获取设备的实际名称(来自"设置"页面的名称)?
如果您有广告 UUID,则可以获取配对/连接设备的列表。
var centralQueu = DispatchQueue(label: "A_NAME")
centralManager = CBCentralManager(delegate: self, queue: centralQueu, options: [CBCentralManagerOptionRestoreIdentifierKey: "RESTORE_KEY", CBCentralManagerOptionShowPowerAlertKey: true])
ServiceUUIDs = [CBUUID(string: "THE_UUID")]
//the array of CBUUIDs which you are looking for
Run Code Online (Sandbox Code Playgroud)
您需要找到您感兴趣的服务 UUID:
var options = [
CBCentralManagerScanOptionAllowDuplicatesKey : (1)
]
centralManager.scanForPeripherals(withServices: [CBUUID(string: SERVICE_UUID)], options: options)
centralManager.retrieveConnectedPeripherals(withServices: ServiceUUIDs)
Run Code Online (Sandbox Code Playgroud)
以这种方式处理 didDiscoverperipheral :
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
discoveredPeripheral = peripheral
if !mRemoteDevices.contains(discoveredPeripheral) {
let peripherels = centralManager.retrievePeripherals(withIdentifiers: [discoveredPeripheral.identifier])
mRemoteDevices.append(peripherels[0])
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码是从 Objective-C 转换为 swift 如果你熟悉 Objective C 那么原始代码就在这里。
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |