Я использую два устройства Android 5.0 для связи через Bluetooth с низким энергопотреблением, и я не хочу:
Устройство 1 в качестве центрального и серверного.
Устройство 2 в качестве периферийного устройства и клиента.
Это поведение, которое я хотел бы достичь:
1) Устройство 2 запускает рекламу (роль периферии).
2) Устройство 1 начинает сканирование (центральная роль) и получает рекламное устройство (объект BluetoothDevice) с помощью метода onScanResult ScanCallback.
3) Теперь я хочу, чтобы рекламное устройство (Устройство 2) было уведомлено о том, что оно было отсканировано, и могло получить BluetoothDevice, связанное с Устройством 1.
4) Устройство 1 имеет экземпляр BluetoothGattServer. Устройство 2 теперь будет вызывать connectGatt(Context context, boolean autoConnect, обратный вызов BluetoothGattCallback) на устройстве 1, чтобы получить экземпляр BluetoothGatt.
5) В конце концов, Устройство 1 — это Сервер, а Устройство 2 — Клиент.
До сих пор я обнаружил, что на шаге 2, когда устройство 1 удерживает BluetoothDevice для устройства 2, оно может подключаться только как клиент, как на шаге 4, используя connectGatt.
Я мог бы использовать BluetoothGattServer, определенный в устройстве 1, и вызвать: gattServer.connect(устройство BluetoothDevice, логическое автоподключение) с устройством Устройство 2.
Но как Устройство 2 будет уведомлено о том, что оно было подключено?
И как мне получить экземпляр BluetoothGatt на Устройстве 2, если я не могу вызвать connectGatt(Context, boolean, BluetoothGattCallback) на BluetoothDevice< /эм>?
Заранее спасибо за вашу помощь !
Некоторая документация: