我正在尝试构建一个 Android 应用程序,它充当 BLE 外设和 GATT 客户端。
这些是我试图实现的步骤:
Android 设备开始自行做广告。第二台设备开始扫描,一旦检测到 Android 设备,就会启动连接。
Android 设备充当 GATT 客户端并尝试连接到服务器设备。
第一步似乎工作正常,我能够进行广告,而其他设备(在我的例子中是 Bluegiga Evalboard)能够看到 Android 设备并建立连接。
但是,如何在 Android 设备上通知我可以建立连接以调用device.connectGatt(context, false, gattCb)连接到 GATT 服务器的函数呢?
我也尝试过在启动广告后获取远程设备。
BluetoothDevice device = bleAdapter.getRemoteDevice(remoteAddress);
device.connectGatt(context, false, gattCb);
唯一发生的事情是,onConnectionStateChange(BluetoothGatt gatt, int status, int newState)从 BluetoothGattCallback 调用该函数只是为了通知我设备已断开连接。
我缺少什么?