Oto rozwiązanie dla iOS (Dziękuję LARME):
NSArray *connectedAccessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
dokumentacja:
https://developer.apple.com/library/prerelease/ios/documentation/ExternalAccessory/Reference/EAAccessoryManager_class/index.html#//apple_ref/occ/instp/EAAccessoryManager/connectedAccessories
Także jeśli ktoś potrzebuje, to jest dokumentacja dla Mac:
https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Intro/BT_Intro.html
i fragment kodu dla Mac
NSArray *devices = [IOBluetoothDevice pairedDevices];
Dla alan478 za BLE pytanie:
Ramy Rdzeń Bluetooth zapewnia klas potrzebnych dla iOS i aplikacji Mac do komunikowania się z urządzeniami, które są wyposażone w Bluetooth niskiej energii technologia bezprzewodowa. Można również zapoznać się ten tutorial:
http://www.raywenderlich.com/52080/introduction-core-bluetooth-building-heart-rate-monitor
i kodu BLE fragment brzmi:
// 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]
Proszę przeczytać ten dokument na developer.apple.com:
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForInteractingWithARemotePeripheralDevice/BestPracticesForInteractingWithARemotePeripheralDevice.html
tutaj jest interesujący akapit dla ty:
Misternie przeglądaj dane dotyczące urządzeń peryferyjnych Urządzenie peryferyjne może mieć o wiele więcej usług i cech, niż być może interesuje Cię, gdy projektujesz aplikację, aby spełnić określone wymagania. Odkrycie wszystkich usług peryferyjnych i związanych z nimi cech może negatywnie wpłynąć na żywotność baterii i wydajność aplikacji. Dlatego powinieneś poszukać i odkryć tylko te usługi i związane z nimi cechy, których wymaga twoja aplikacja.
Na przykład wyobraź sobie, że jesteś podłączony do urządzenia peryferyjnego, które ma wiele dostępnych usług, ale Twoja aplikacja potrzebuje tylko dwóch z nich.można szukać i odkryć te dwie usługi tylko, przekazując w tablicy ich UUID usług (reprezentowanych przez obiekty CBUUID) do discoverServices: metodę klasy CBPeripheral, tak:
[peripheral discoverServices:@[firstServiceUUID, secondServiceUUID]];
Po odkryli dwie usługi, którymi jesteś zainteresowany, możesz w podobny sposób wyszukać i odkryć tylko cechy tych usług, które Cię interesują. Ponownie, po prostu wprowadź tablicę identyfikatorów UUID, które identyfikują cechy, które chcesz odkryć (dla każdej usługi) do discoverCharacteristics: forService: metoda klasy CBPeripheral.
Również nie jest to komentarz.
„myśleć Jabłko zakazuje tego, co możemy uzyskać tylko listę urządzeń z konkretnym CBUUID więc jeśli chcesz do listy wszystkich urządzeń (tak samo jak ustawienia Bluetooth robi. natywnie) to nie jest możliwe, proszę mnie poprawić, jeśli się mylę - Mrug 11 marca o 13:24"
pod tym pytaniem..
How to get list of available Bluetooth devices?
Bluetooth lub Bluetooth nisko- Energia? ExternalAccessory.framework (dla klasycznych urządzeń zgodnych z Bluetooth M-Fi) może wyświetlić listę podłączonych urządzeń. – Larme
Przepraszamy, należy wspomnieć, że jest BLE – alan478