可能生成iOS连接的蓝牙设备列表?
我试图确定哪些设备通过蓝牙在iOS连接,但似乎无法弄清楚。 理想情况下,我想生成一个连接的蓝牙设备列表。
我试过使用“retrieveConnectedPeripheralsWithServices”,但这需要一个特定的服务来search。 我想要生成所有连接的蓝牙设备列表,而不仅仅是特定服务的蓝牙设备。 有没有办法只search所有的服务没有循环所有可能的服务?
有任何想法吗?
这里是iOS的解决scheme(谢谢Larme):
NSArray *connectedAccessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
文档:
另外如果有人需要,这是Mac的文档:
和Mac代码片段
NSArray *devices = [IOBluetoothDevice pairedDevices];
对于alan478的BLE问题:
核心蓝牙框架提供了iOS和Mac应用程序与配备了蓝牙低功耗无线技术的设备进行通信所需的类。 你可以看看这个教程:
http://www.raywenderlich.com/52080/introduction-core-bluetooth-building-heart-rate-monitor
和BLE代码片段是:
// In this case you need to tell UUID for serching specific device CBUUID *hrate = [CBUUID UUIDWithString:@"1800"]; // Create a dictionary for passing down to the scan with service method NSDictionary *scanOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:CBCentralManagerScanOptionAllowDuplicatesKey]; // Tell the central manager (cm) to scan for the heart rate service [cm scanForPeripheralsWithServices:[NSArray arrayWithObject:hrate] options:scanOptions]
请在developer.apple.com上阅读以下文档:
这里是一个有趣的段落:
明智地探索外围设备的数据当您开发应用程序以满足特定用例时,外围设备可能具有比您可能感兴趣的更多的服务和特性。 发现所有外设的服务和相关特性可能会对电池寿命和应用性能产生负面影响。 因此,您应该只查找和发现您的应用程序所需的服务和关联特征。
例如,假设您已连接到具有许多可用服务的外围设备,但您的应用只需要访问其中的两个。 您只能通过将其服务UUID(由CBUUID对象表示)的数组传递给CBPeripheral类的discoverServices:方法来查找和发现这两个服务,如下所示:
[peripheral discoverServices:@[firstServiceUUID, secondServiceUUID]];
在发现了您感兴趣的两个服务之后,您可以类似地查找并发现您感兴趣的这些服务的特征。再次,只需传入一组UUID即可识别要发现的特征(对于每个服务)到CBPeripheral类的discoverCharacteristics:forService:方法。
还有这个评论:
“想苹果禁止这个东西,我们只能得到具有特定CBUUID的设备列表,所以如果你想列出所有的设备(与蓝牙设置本身相同),那么这是不可能的,请纠正我,如果我错了。 – Mrug 3月11日13:24“
在这个问题下:
如何获得可用的蓝牙设备列表?