ứng dụng của tôi sẽ kết nối với thiết bị Bluetooth LE. Thông thường, bạn thực hiện quét thiết bị bằng cách sử dụng mBluetoothAdapter.startLeScan(mLeScanCallback);
. Cuộc gọi lại cung cấp cho bạn thông tin về các thiết bị có sẵn.Android 4.4: Bluetooth Low Energy; Kết nối mà không cần quét thiết bị BLE
Nếu bạn muốn kết nối với một thiết bị chuyên dụng, bạn làm điều gì đó như
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
và sau đó
mBluetoothGatt = device.connectGatt(this, false, mGattCallback);
Đối với tôi có vẻ như điều duy nhất bạn cần phải kết nối với một thiết bị BLE , là để biết địa chỉ BLE và sau đó kết nối với nó với hai bước trên. Vì vậy, nếu tôi biết địa chỉ BLE đã có (ví dụ: nó được ghi trên nhãn của thiết bị BLE), tôi không cần thực hiện quét BLE.
Nhưng những gì tôi gặp phải là nếu tôi có thiết bị BLE mà trước đây tôi chưa từng tìm thấy qua lần quét BLE, thì không thể kết nối trực tiếp với nó bằng địa chỉ BLE của nó. Tôi phải tìm nó thông qua một lần quét ít nhất một lần với điện thoại Android của tôi. Sau đó tôi không bao giờ cần quét lại và tôi có thể kết nối với thiết bị BLE chỉ bằng cách sử dụng địa chỉ BLE của nó.
Được cho là như thế này hay tôi đã giám sát điều gì đó?
Thanks a lot, Stefan
Có thể [ghép nối và/hoặc liên kết] (https://piratecomm.wordpress.com/2014/01/19/ble-pairing-vs-bonding/) được yêu cầu trước khi kết nối không? – JimmyB
Theo như tôi hiểu BLE, điều này là không cần thiết. Ngoài ra nếu tôi thực hiện quét, tôi không làm gì để ghép nối hoặc liên kết và nó hoạt động. Vấn đề là kết nối trực tiếp với thiết bị mà không cần thực hiện quét BLE. – Stefan