gpt4 book ai didi

java - Android 外设 BluetoothGattServerCallback onServiceAdded() 没有被调用

转载 作者:行者123 更新时间:2023-11-29 02:30:09 24 4
gpt4 key购买 nike

所以我有一个简单的外设应用程序,我在我的三星 S8 手机上运行的 Android Studio 中编写代码。我可以很好地设置我所有的 BLE 广告和特性,但是当我添加我的服务时。从另一个中央设备(即具有发现蓝牙广告的应用程序的另一部手机)连接时,我没有看到预期的结果。

Android Studio 的 LogCat 输出:

LogCat output

根据日志,我只能看到 2 个默认服务,即通用属性 (1800) 和通用访问 (1801),它们是任何 Gatt 服务器的默认服务。我觉得我缺少“onServiceAdded()”回调,它应该告诉服务是否确实已添加和可发现。

我的代码没有错误,addService() 调用成功。我的问题是为什么我无法从 onServiceAdded() 获得响应?而像 onConnectionStateChange() 这样的其他覆盖函数似乎工作正常。这似乎是非常基本的,我看了很多例子,但似乎无法让最后一点起作用。任何有解决方案或一些好的引用资料可供引用的人都将不胜感激。

最佳答案

我有同样的问题 (Nokia 6.1) onServiceAdded 只被调用一次,尽管我添加了 2 个服务并且我是随机获取的

onCharacteristicReadRequest() no char for handle nnn

尝试从另一台设备连接时。

我在文档中找到了一个相关点https://developer.android.com/reference/android/bluetooth/BluetoothGattServer.html#addService(android.bluetooth.BluetoothGattService)

The BluetoothGattServerCallback.onServiceAdded(int,BluetoothGattService) callback will indicate whether this service hasbeen added successfully. Do not add another service before thiscallback.

我找到的可靠解决方案是添加一个服务,等待调用 onServiceAdded,然后添加第二个服务,再次等待 onServiceAdded,然后调用 startAdvertising。

关于java - Android 外设 BluetoothGattServerCallback onServiceAdded() 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49930014/

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