Tôi có một hệ thống nhúng chạy một máy chủ GATT mà tôi đang cố gắng kết nối thông qua Android. Nhiệm vụ rất đơn giản: kết nối với máy chủ GATT, điều hướng các đặc tính và xác nhận khả năng đọc/ghi. Vấn đề là khi tôi thử và kết nối với một ứng dụng Android, nó cố gắng ghép nối với một "Passkey" thay vì với "Just Works" [https://developer.bluetooth.org/TechnologyOverview/Pages/LE-Security.aspx]. Điều này không được chấp nhận vì thiết bị nhúng của tôi không có bất kỳ phương pháp nào để hiển thị khóa cho người dùng sử dụng để ghép nối. Vì vậy, phương thức kết nối phải là Chỉ hoạt động.Làm thế nào để buộc Bluetooth LE "Chỉ hoạt động" Ghép nối trong Android
Tôi đã thử nhiều ứng dụng từ cửa hàng Play và tất cả chúng chỉ cố gắng ghép nối với Passkey. Nhưng đây là số điện thoại hiện tại tôi đang làm việc với: https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner
Tôi làm việc này bằng ứng dụng LightBlue (được hỗ trợ trong OS X và iOS). Vì vậy, tôi biết thiết bị ngoại vi của tôi (máy chủ GATT) đang hoạt động: quảng cáo, có thể kết nối, có thể truy cập đặc trưng, v.v.
Làm cách nào để Android sử dụng Chỉ hoạt động thay vì ghép nối Passkey? Có một cấu hình ngoại vi tôi đang thiếu?
Cảm ơn
Thiết bị nhúng của bạn phải quảng cáo khả năng IO thích hợp trong giai đoạn xác thực bluetooth. Đặc biệt nó có lẽ nên được quảng cáo NoInpiutOutput. Làm thế nào để làm điều này phụ thuộc vào những gì bạn đang chạy trên hệ thống nhúng của bạn. Ví dụ: nếu bạn đang chạy Linux thì tác nhân đi kèm với bluez có thể chạy như sau: test-agent -c NoInputNoOutput – kaylum
@kaylum ** đại lý thử nghiệm ** là gì? –
@IgorGanapolsky test-agent là mã tác nhân ví dụ đi kèm với bluez. Nó được đổi tên thành 'simple-agent'. Mã nguồn [ở đây] (https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/simple-agent) – kaylum