¿Es posible generar una list de dispositivos bluetooth conectados para iOS?

Estoy tratando de determinar qué dispositivos están conectados a través de bluetooth en iOS, pero parece que no puedo entenderlo. Idealmente, me gustaría generar una list de dispositivos bluetooth conectados.

He intentado usar "retrieveConnectedPeripheralsWithServices" pero esto requiere un service específico para search. Me gustaría generar una list de todos los dispositivos bluetooth conectados, no solo los dispositivos bluetooth de service específico. ¿Hay alguna forma de search todos los services sin tener que pasar por todos los services posibles?

¿Algunas ideas?

Aquí hay una solución para iOS (gracias a Larme):

NSArray *connectedAccessories = [[EAAccessoryManager shanetworkingAccessoryManager] connectedAccessories]; 

documentation:

https://developer.apple.com/library/prerelease/ios/documentation/ExternalAccessory/Reference/EAAccessoryManager_class/index.html#//apple_ref/occ/instp/EAAccessoryManager/connectedAccessories

Además, si alguien necesita, esta es la documentation para Mac:

https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Intro/BT_Intro.html

y fragment de código para Mac

 NSArray *devices = [IOBluetoothDevice pairdDevices]; 

Para la pregunta BLE de alan478:

El marco Core Bluetooth proporciona las classs necesarias para que sus aplicaciones iOS y Mac se comuniquen con dispositivos equipados con tecnología inalámbrica Bluetooth de baja energía. Puedes echar un vistazo a este tutorial:

http://www.raywenderlich.com/52080/introduction-core-bluetooth-building-heart-rate-monitor

y el fragment de código BLE es:

 // 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] 

Lea este documento en developer.apple.com:

https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForInteractingWithARemotePeripheralDevice/BestPracticesForInteractingWithARemotePeripheralDevice.html

aquí hay un párrafo interesante para ti:

Explore sabiamente los datos de un periférico Un dispositivo periférico puede tener muchos más services y características de las que le pueden interesar cuando desarrolla una aplicación para cumplir con un caso de uso específico. El descubrimiento de todos los services de un periférico y las características asociadas pueden afectar negativamente la duración de la batería y el performance de su aplicación. Por lo tanto, debe search y descubrir solo los services y las características asociadas que su aplicación necesita.

Por ejemplo, imagina que estás conectado a un dispositivo periférico que tiene muchos services disponibles, pero tu aplicación necesita acceso solo a dos de ellos. Puede search y descubrir estos dos services solamente, pasando una matriz de sus UUID de service (representados por objects CBUUID) a discoverServices: método de la class CBPeripheral, así:

 [peripheral discoverServices:@[firstServiceUUID, secondServiceUUID]]; 

Una vez que haya descubierto los dos services que le interesan, puede search y descubrir de manera similar solo las características de estos services que le interesan. De nuevo, simplemente pase una matriz de UUID que identifique las características que desea descubrir ( para cada service) a discoverCharacteristics: forService: método de la class periférica CBP.

También hay este comentario:

"creo que Apple prohíbe esto. Solo podemos get la list de dispositivos con CBUUID específico, por lo que si desea enumerar todos los dispositivos (lo mismo que la configuration de Bluetooth de manera nativa), entonces no es posible. Por favor corríjame si estoy equivocado. – Mrug 11 de marzo a las 13:24 "

bajo esta pregunta:

¿Cómo get una list de dispositivos Bluetooth disponibles?