Tôi đã tự hỏi tôi có thể đo cường độ tín hiệu của các thiết bị Bluetooth trong phạm vi của iPhone của tôi không. Về cơ bản những gì tôi muốn làm là quét cho một danh sách các thiết bị trong phạm vi, và sau đó xem cái nào có cường độ tín hiệu cao nhất. Có thể trong iOS và tôi sẽ làm như thế nào nếu có?Tôi có thể đo cường độ tín hiệu Bluetooth trong iOS không?
Trả lời
Có cách đo cường độ tín hiệu cho Bluetooth Low Energy (4.0) là số RSSI. Khi bạn quét các thiết bị ngoại vi, bạn sẽ thiết lập các CBCentralManagerScanOptionAllowDuplicatesKey cờ để YES như hình dưới đây:
NSDictionary * dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@YES, CBCentralManagerScanOptionAllowDuplicatesKey, nil];
// Start scanning for peripherals
[cmanager scanForPeripheralsWithServices:nil options:dictionary];
Nếu bạn muốn xem công việc số RSSI mà không cần viết bất kỳ mã bạn nên kiểm tra các ứng dụng LightBlue trong iTunes. Khi bạn kết nối với một thiết bị ngoại vi, nó sẽ hiển thị cho bạn số RSSI được cập nhật mỗi giây khi nó được kết nối.
Có một cái nhìn đến CoreBluetooth documentation:
- (void)centralManager:(CBCentralManager *)central
didDiscoverPeripheral:(CBPeripheral *)peripheral
advertisementData:(NSDictionary *)advertisementData
RSSI:(NSNumber *)RSSI
{ ... }
RSSI là những gì bạn đang tìm kiếm. Disclaimer: Core Bluetooth được thực hiện cho Bluetooth 4 LE chỉ.
Nếu phạm vi chính xác không quan trọng, nhưng bạn quan tâm đến việc quét các thiết bị có sẵn nói chung, bạn có thể xem dự án github BeeTee, cho phép bạn quét tất cả các thiết bị Bluetooth xung quanh bạn (không chỉ Bluetooth LE). Một lần nữa tuyên bố từ chối trách nhiệm: Tôi là tác giả của BeeTee. ;-)
Khi bạn mã hóa mã 'trung tâm' bằng CBCentralManager, cuối cùng bạn sẽ kết nối với CBPeripheral mà bạn đang tìm kiếm. Khi bạn đã kết nối với thiết bị ngoại vi, hãy tham khảo nó, đặt đối tượng của bạn làm đại biểu của thiết bị ngoại vi và gọi 'readRSSI' trên thiết bị ngoại vi. Bạn sẽ nhận được một cuộc gọi lại đại biểu peripheral: didReadRSSI: error: Nếu bạn viết một phương thức gọi 'readRSSI', bạn có thể gọi nó bằng cách sử dụng performSelector: withObject: afterDelay:.
Một trong những câu trả lời được đề xuất cho câu hỏi này là cung cấp khóa 'cho phép trùng lặp' khi quét. Các tài liệu cho khóa từ điển CBCentralManagerScanOptionAllowDuplicatesKey khi được chuyển đến scanForPeripheralsWithServices:options: cho biết rằng "Việc tắt bộ lọc này có thể ảnh hưởng xấu đến thời lượng pin và chỉ nên sử dụng nếu cần".
Nếu bạn chọn viết lời gọi bị trì hoãn, bạn có thể điều chỉnh tần suất của các cuộc gọi để giúp bạn quản lý tác động lên pin của người dùng.
- 1. Linux Bluetooth l2ping với cường độ tín hiệu
- 2. Cường độ tín hiệu giả lập Android
- 3. Tìm cường độ tín hiệu GPS
- 4. Nhận cường độ tín hiệu Wi-Fi trong Android
- 5. làm thế nào để có được cường độ tín hiệu modem 3g trong c + + linux?
- 6. Kết thúc tín hiệu Bluetooth chết
- 7. Cách nhận cường độ tín hiệu dịch vụ di động trong Android?
- 8. Ý nghĩa của dBm âm trong cường độ tín hiệu là gì?
- 9. Trạng thái tín hiệu và không có tín hiệu
- 10. Đo cường độ ánh sáng từ Camera Android
- 11. Lập trình nhận cường độ tín hiệu sóng mang của điện thoại di động
- 12. Làm cách nào để đánh giá cường độ tín hiệu GPS? (iPhone)
- 13. Làm cách nào để nhận cường độ tín hiệu tế bào hiện tại?
- 14. Tại sao tôi không thể bỏ qua tín hiệu SIGSEGV?
- 15. Có thể đọc chất lượng tín hiệu từ modem GSM/CDMA trong khi kết nối không?
- 16. Nhận CID, LAC và cường độ tín hiệu của tất cả các tháp di động trong phạm vi
- 17. Bluetooth LE RSSI để phát hiện lân cận iOS
- 18. Tăng cường :: các khe tín hiệu được gọi là đồng bộ hoặc không đồng bộ?
- 19. Làm cách nào để sắp xếp danh sách getScanResults() dựa trên cường độ Tín hiệu theo thứ tự tăng dần?
- 20. chế độ có thể phát hiện Disable Bluetooth trên Android
- 21. Có cách nào để truy cập dữ liệu wi-fi OS X bằng Python không? (Ví dụ như cường độ tín hiệu)
- 22. iOS Core Bluetooth Không yêu cầu cặp
- 23. Có thể phát triển ứng dụng iOS có khả năng bluetooth không?
- 24. Tôi có thể nhận được độ chính xác của vị trí GPS trong iOS không?
- 25. cảm biến ánh sáng iPhone vs camera để đo cường độ ánh sáng
- 26. Tôi có thể biến máy Mac của mình thành thiết bị ngoại vi Bluetooth không?
- 27. iOS SDK Vô hiệu hóa Internal Microphone
- 28. iOS và bluetooth ... tôi sẽ cần những framework nào?
- 29. Tổng cường độ hình ảnh trong GPU
- 30. Tôi có thể nắm bắt tín hiệu bàn phím nào ngoài Ctrl-C?