gpt4 book ai didi

java - openGattServer(context, mGattServerCallback) 似乎没有打开 gattserver,为什么?

转载 作者:行者123 更新时间:2023-12-01 16:30:30 26 4
gpt4 key购买 nike

我正在尝试在我的应用程序中创建一个 gattserver,因此它可以充当外围设备。首先,我注意到我为中央(客户端)编写的代码无法连接到服务器(BluetoothGattCallback 方法 onConnectionStateChange 提供了臭名昭著的状态 113)。然后我尝试通过 Playstore 应用nrf connect进行连接,但这也是不可能的。不过,广告(也在我的代码中完成)有效。客户端代码以及 nrf connect 扫描并检测我的广告。这就是我想要启动我的服务器的方式:

BluetoothManager mBluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mGattServer = mBluetoothManager.openGattServer(this, mGattServerCallback);

我之前定义了 gattservercallback,因此该行被执行,并且我得到了一个非 NULL BluetoothGattServer 实例,完全符合我的要求,我什至可以毫无问题地添加服务:

btGattServer.addService(createService());

(createService 返回一个 Service 实例)

我真的很感谢一些帮助!如果有人需要更多详细信息或更多代码(例如启动广告的代码),我很乐意更新我的问题!

最佳答案

我自己想出来了:

要开始广告,您需要在 Advertiser 实例上调用 startAdvertising。此调用需要三个参数,其中之一是 AdvertiseSettings 对象。当我使用 AdvertiseSettings 构建器创建此对象时,我没有包含 .setConnectable(true)

这就是广告本身起作用,但尝试连接的应用程序却不起作用的原因。(所以 .openGattServer 实际上打开了一个服务器,只是无法连接)

关于java - openGattServer(context, mGattServerCallback) 似乎没有打开 gattserver,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62051738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com