Ecco la soluzione per iOS (Grazie Larme):
NSArray *connectedAccessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
documentazione:
https://developer.apple.com/library/prerelease/ios/documentation/ExternalAccessory/Reference/EAAccessoryManager_class/index.html#//apple_ref/occ/instp/EAAccessoryManager/connectedAccessories
Anche se qualcuno ha bisogno, questa è la documentazione per Mac:
https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Intro/BT_Intro.html
e frammento di codice per Mac
NSArray *devices = [IOBluetoothDevice pairedDevices];
Per la domanda BLE di alan478:
Il quadro Nucleo Bluetooth fornisce le classi necessarie per iOS e applicazioni Mac per comunicare con dispositivi che sono dotati di Bluetooth a basso consumo energetico tecnologia wireless. Si può dare un'occhiata questo tutorial:
http://www.raywenderlich.com/52080/introduction-core-bluetooth-building-heart-rate-monitor
e frammento di codice 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]
Si prega di leggere questo documento su developer.apple.com:
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForInteractingWithARemotePeripheralDevice/BestPracticesForInteractingWithARemotePeripheralDevice.html
questo è un paragrafo interessante per you:
Esplora saggiamente i dati di una periferica Un dispositivo periferico può disporre di molti più servizi e caratteristiche di quelli che potrebbero essere interessati quando si sviluppa un'app per soddisfare un caso d'uso specifico. La scoperta di tutti i servizi di una periferica e le caratteristiche associate possono influire negativamente sulla durata della batteria e sulle prestazioni della tua app. Pertanto, dovresti cercare e scoprire solo i servizi e le caratteristiche associate di cui ha bisogno la tua app.
Ad esempio, immagina di essere connesso a un dispositivo periferico con molti servizi disponibili, ma l'app deve poterne accedere solo a due.È possibile cercare e scoprire questi due servizi solo, passando in un allineamento dei loro UUID di servizio (rappresentata da oggetti CBUUID) per le discoverServices: metodo della classe CBPeripheral, in questo modo:
[peripheral discoverServices:@[firstServiceUUID, secondServiceUUID]];
Dopo aver scoperto i due servizi a cui sei interessato, puoi in modo simile cercare e scoprire solo le caratteristiche di questi servizi che ti interessano. Ancora una volta, passa semplicemente in una serie di UUID che identificano le caratteristiche che vuoi scoprire (per ciascun servizio) alla scopertaCaratteristiche: forService: metodo della classe CBPeripheral.
c'è anche questo commento:.
"che Apple proibisce questa cosa Possiamo solo ottenere l'elenco dei dispositivi con specifiche CBUUID quindi se si desidera elencare tutti i dispositivi (lo stesso le impostazioni Bluetooth fa. nativamente) allora non è possibile per favore correggetemi se sbaglio - Mrug 11 marzo alle 13:24"
ai sensi della presente domanda:..
How to get list of available Bluetooth devices?
Bluetooth o Bluetooth Low Energia? ExternalAccessory.framework (per i convenzionali Bluetooth MFi standard) può fornire l'elenco dei dispositivi collegati. – Larme
Spiacente, dovrei aver detto che è BLE – alan478