可能生成iOS连接的蓝牙设备列表?
我试图确定哪些设备通过蓝牙连接iOS,但似乎无法弄清楚。 理想情况下,我想生成连接的蓝牙设备列表。
我试过使用“retrieveConnectedPeripheralsWithServices”,但这需要一个特定的服务来搜索。 我想要生成所有连接的蓝牙设备列表,而不仅仅是特定服务的蓝牙设备。 有没有办法只搜索所有服务而不循环所有可能的服务?
有任何想法吗?
这里是iOS的解决方案(谢谢Larme):
NSArray *connectedAccessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
文档:
https://developer.apple.com/library/prerelease/ios/documentation/ExternalAccessory/Reference/EAAccessoryManager_class/index.html#//apple_ref/occ/instp/EAAccessoryManager/connectedAccessories
另外如果有人需要,这是Mac的文档:
https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Intro/BT_Intro.html
和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上阅读此文档:
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForInteractingWithARemotePeripheralDevice/BestPracticesForInteractingWithARemotePeripheralDevice.html
这里有一段对你很有趣的段落:
明智地探索外围设备的数据当您开发应用程序以满足特定用例时,外围设备可能具有比您可能感兴趣的更多的服务和特性。 发现所有外设的服务和相关特性都会对电池寿命和应用性能产生负面影响。 因此,您应该只查找和发现您的应用需要的服务和关联特征。
例如,假设您已连接到具有许多可用服务的外围设备,但您的应用只需要访问其中的两个。 您只能通过将其服务UUID(由CBUUID对象表示)的数组传递给CBPeripheral类的discoverServices:方法来查找和发现这两个服务,如下所示:
[peripheral discoverServices:@[firstServiceUUID, secondServiceUUID]];
在发现了您感兴趣的两种服务之后,您可以类似地查找和发现您感兴趣的这些服务的特征。再次,只需传入一组UUID即可识别要发现的特征(对于每个服务)发送到CBPeripheral类的discoverCharacteristics:forService:方法。
还有这个评论:
“我们只能得到具有特定CBUUID的设备列表,所以如果你想列出所有的设备(与蓝牙设置本身一样),那么这是不可能的,请纠正我,如果我错了。 - Mrug 3月11日13:24“
在这个问题下:
如何获取可用蓝牙设备的列表?
链接地址: http://www.djcxy.com/p/26843.html上一篇: Possible to generate a list of connected bluetooth devices for iOS?