Đây là giải pháp dành cho iOS (Cảm ơn bạn Larme):
NSArray *connectedAccessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
tài liệu:
https://developer.apple.com/library/prerelease/ios/documentation/ExternalAccessory/Reference/EAAccessoryManager_class/index.html#//apple_ref/occ/instp/EAAccessoryManager/connectedAccessories
Ngoài ra nếu ai đó cần, đây là tài liệu hướng dẫn dành cho Mac:
https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Intro/BT_Intro.html
và đoạn mã cho Mac
NSArray *devices = [IOBluetoothDevice pairedDevices];
Đối với câu hỏi BLE alan478 của:
Khung cốt lõi Bluetooth cung cấp các lớp học cần thiết cho iOS của bạn và các ứng dụng Mac để giao tiếp với các thiết bị được trang bị năng lượng thấp Bluetooth Công nghệ không dây. Bạn có thể có một cái nhìn hướng dẫn này:
http://www.raywenderlich.com/52080/introduction-core-bluetooth-building-heart-rate-monitor
và đoạn mã BLE là:
// 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]
Vui lòng đọc tài liệu này trên developer.apple.com:
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForInteractingWithARemotePeripheralDevice/BestPracticesForInteractingWithARemotePeripheralDevice.html
đây là một đoạn thú vị cho bạn:
Khám phá dữ liệu ngoại vi một cách khôn ngoan Thiết bị ngoại vi có thể có nhiều dịch vụ và đặc điểm hơn bạn có thể quan tâm khi phát triển ứng dụng để hoàn thành một trường hợp sử dụng cụ thể. Việc khám phá tất cả các dịch vụ của ngoại vi và các đặc điểm liên quan có thể ảnh hưởng tiêu cực đến tuổi thọ pin và hiệu suất của ứng dụng. Do đó, bạn nên tìm kiếm và chỉ khám phá các dịch vụ và đặc điểm liên quan mà ứng dụng của bạn cần.
Ví dụ: hãy tưởng tượng rằng bạn được kết nối với thiết bị ngoại vi có nhiều dịch vụ khả dụng, nhưng ứng dụng của bạn chỉ cần truy cập vào hai trong số đó.Bạn có thể tìm kiếm và khám phá hai dịch vụ này mà thôi, bằng cách thông qua trong một mảng của UUIDs dịch vụ của họ (đại diện bởi các đối tượng CBUUID) đến discoverServices: phương pháp của lớp CBPeripheral, như thế này:
[peripheral discoverServices:@[firstServiceUUID, secondServiceUUID]];
Sau khi bạn đã khám phá hai dịch vụ mà bạn quan tâm, bạn có thể tìm kiếm và khám phá những đặc điểm của các dịch vụ mà bạn quan tâm. Một lần nữa, chỉ cần truyền một mảng UUID xác định các đặc tính bạn muốn khám phá (cho mỗi dịch vụ) để discoverCharacteristics: forService: phương thức của lớp CBPeripheral.
Cũng có nhận xét này:.
"nghĩ rằng Apple cấm điều này Chúng tôi chỉ có thể nhận được danh sách các thiết bị với CBUUID cụ thể vì vậy nếu bạn muốn liệt kê tất cả các thiết bị (giống như cài đặt Bluetooth không. natively) sau đó nó không thể vui lòng sửa tôi nếu tôi đã sai lầm - Mrug ngày 11 tháng ba tại 13:24"
dưới câu hỏi này:..
How to get list of available Bluetooth devices?
Bluetooth hoặc Bluetooth nhập thấp Năng lượng? ExternalAccessory.framework (đối với các chuẩn Bluetooth MFi cổ điển) có thể cung cấp cho bạn danh sách các thiết bị được kết nối. – Larme
Xin lỗi, nên đề cập đến nó là BLE – alan478