我正在使用两个 Android 5.0 设备通过低功耗蓝牙进行通信,但我不想:
设备 1充当Central 和 Server。
设备 2充当Peripheral 和 Client。
这是我想要实现的行为:
1)设备2开始做广告(外围角色)。
2)设备1开始扫描(中心角色),通过ScanCallback的onScanResult方法获取广告设备(BluetoothDevice对象)。
3)我现在希望通知广告设备(设备 2)它已被扫描,并且能够获取与设备 1 关联的蓝牙设备。
4) 设备 1 有一个 BluetoothGattServer 实例。设备 2 现在将在设备 1 上调用 connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback) 以获取 BluetoothGatt 的实例。
5)最后,Device 1是Server,Device 2是Client。
到目前为止,我发现在第 2 步中,一旦设备 1 拥有设备 2 的蓝牙设备,它就只能像第 4 步中那样使用 connectGatt 作为客户端连接。
我可能能够使用设备 1 中定义的BluetoothGattServer,并调用:gattServer.connect(BluetoothDevice device, boolean autoConnect)设备为设备 2。
但是如何通知设备 2 已连接?
如果我无法在 BluetoothDevice 上调用 connectGatt(Context, boolean, BluetoothGattCallback) ,我将如何在设备 2 中获取BluetoothGatt的实例?
预先感谢您的帮助 !
一些文档: