openGattServer(context, mGattServerCallback) 好像没有打开gattserver,为什么呢?
openGattServer(context, mGattServerCallback) doesn't seem to open a gattserver, why?
我正在尝试在我的应用程序中创建一个 gattserver,以便它可以充当外围设备。首先,我注意到我为中央(客户端)编写的代码无法连接到服务器(BluetoothGattCallback 方法 onConnectionStateChange 提供了臭名昭著的状态 113)。然后我尝试通过 Playstore 应用程序 nrf connect 进行连接,这也是不可能的。广告(也在我的代码中完成)虽然有效。客户端代码以及 nrf 连接扫描并检测我的广告。
这就是我想要启动服务器的方式:
BluetoothManager mBluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mGattServer = mBluetoothManager.openGattServer(this, mGattServerCallback);
我之前定义了 gattservercallback,所以该行被执行并且我得到了一个非 NULL BluetoothGattServer 实例,正如我想要的那样,我什至可以毫无问题地添加服务:
btGattServer.addService(createService());
(createService returns 一个服务实例)
非常感谢您对此提供帮助!
如果有人需要更多详细信息或更多代码(例如启动广告的代码),我很乐意更新我的问题!
我自己想出来了:
要开始广告,您需要在 Advertiser 实例上调用 startAdvertising。此调用需要三个参数,其中之一是 AdvertiseSettings 对象。当我使用 AdvertiseSettings 构建器创建此对象时,我没有包含 .setConnectable(true)
.
这就是为什么广告本身有效,但尝试连接的应用程序却失败的原因。
(所以 .openGattServer
实际上打开了一个服务器,只是无法连接)
我正在尝试在我的应用程序中创建一个 gattserver,以便它可以充当外围设备。首先,我注意到我为中央(客户端)编写的代码无法连接到服务器(BluetoothGattCallback 方法 onConnectionStateChange 提供了臭名昭著的状态 113)。然后我尝试通过 Playstore 应用程序 nrf connect 进行连接,这也是不可能的。广告(也在我的代码中完成)虽然有效。客户端代码以及 nrf 连接扫描并检测我的广告。 这就是我想要启动服务器的方式:
BluetoothManager mBluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mGattServer = mBluetoothManager.openGattServer(this, mGattServerCallback);
我之前定义了 gattservercallback,所以该行被执行并且我得到了一个非 NULL BluetoothGattServer 实例,正如我想要的那样,我什至可以毫无问题地添加服务:
btGattServer.addService(createService());
(createService returns 一个服务实例)
非常感谢您对此提供帮助! 如果有人需要更多详细信息或更多代码(例如启动广告的代码),我很乐意更新我的问题!
我自己想出来了:
要开始广告,您需要在 Advertiser 实例上调用 startAdvertising。此调用需要三个参数,其中之一是 AdvertiseSettings 对象。当我使用 AdvertiseSettings 构建器创建此对象时,我没有包含 .setConnectable(true)
.
这就是为什么广告本身有效,但尝试连接的应用程序却失败的原因。
(所以 .openGattServer
实际上打开了一个服务器,只是无法连接)