我正在尝试在Nexus 7上使用4.3中的新BTLE API实现BTLE SERVER。我遇到了几个问题。首先,SDK中没有示例。唯一的示例是客户端示例。其次,文档实际上告诉你做错了事情。它说明必须使用
接下来的问题更棘手。 BluetoothGattServer文档说明可以使用此类创建和广播Bluetooth LE服务和特征。创建服务等不是问题,但他们忽略了如何开始广播。我找不到类本身或任何其他类中的方法。
有人知道如何做吗?目前我所能看到的只是使用与客户端相同的方法,但该方法涉及扫描(这不是广告)。所有文档进一步建议
BluetoothAdapter.getProfileProxy()
并将参数设置为BluetoothProfile.GATT_SERVER来获取BluetoothGattServer对象。这种方法会起作用,但是您将无法将BluetoothGattServerCallback的实现链接到BLE堆栈中(此回调是响应客户端读取和写入请求等的方式)。然而,在发现问题58582后,开发人员指向了新的BluetoothManager.openGattServer()
方法,该方法将您的回调作为参数并返回BluetoothGattServer对象。好的,一个问题解决了。接下来的问题更棘手。 BluetoothGattServer文档说明可以使用此类创建和广播Bluetooth LE服务和特征。创建服务等不是问题,但他们忽略了如何开始广播。我找不到类本身或任何其他类中的方法。
有人知道如何做吗?目前我所能看到的只是使用与客户端相同的方法,但该方法涉及扫描(这不是广告)。所有文档进一步建议
BluetoothAdapter.startLeScan()
确实仅用于扫描。那么,当我的所有服务、特征和描述符都就绪后,我该如何启动广告呢?