当前位置: 首页 > 知识库问答 >
问题:

蓝牙GATT服务没有出现在Android上的BLE扫描

蔺宇
2023-03-14

我正在与Bluez一起使用带有USB蓝牙加密狗的TinyCore linux盒。我们使用示例gatt服务器添加电池服务以发送降低的电池电量。使用蓝牙,我们的控制器(USB蓝牙加密狗)的信息显示服务:

Controller 00:07:80:C1:AC:89
Name: box
Alias: box
Class: 0x000104
Powered: yes
Discoverable: yes
Pairable: yes
UUID: Battery Service           (0000180f-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d052D
Discovering: no

我们的目标是在Android应用程序上阅读此内容,但在我们的自定义应用程序和示例BLE扫描应用程序中,我们看到的唯一服务是00001800(通用访问配置文件)和00001801(通用属性配置文件)。

我的问题是为什么我们可以在Bluetoothctl上看到电池服务,但该服务并未显示在DisverServices()上?

共有1个答案

司寇阳朔
2023-03-14

如果这可以引导您找到解决方案(我使用的是Raspberry Pi-而不是Tiny Core):
蓝牙与串行接口的连接有问题。重新连接它可以解决问题-在我的情况下:

sudo hciattach /dev/ttyAMA0 bcm43xx 9210600 noflow 

致电:hciattach-l检查您的设备。

PS:始终感谢版主的意见,并感谢他们的负面反馈-我满怀热情地收集他们;)

 类似资料:
  • 我正在开发一个POC,我使用实验性的BLE扫描接口来发现多个蓝牙设备,并从web应用程序连接到它们的GATT服务。 使用导航器请求单个设备。蓝牙。requestDevice(请求设备)生成一个可以连接到GATT服务器的设备。 当我尝试使用发现设备时,我收到的设备不允许我连接到GATT服务器。 对设备的调用。关贸总协定。connect()引发错误: 未授权GATT操作 如何获得授权访问检测到的设备上

  • 从蓝牙android API获取android辅助蓝牙gatt服务。 下面是我们获取ble服务的代码: 甚至尝试以独占方式获取辅助服务,但它返回空对象: 有人可以指出任何指针如何在Android中搜索辅助服务。

  • 我正在考虑为一个定制应用程序实现一些GATT服务,但我现在正忙于研究。我知道服务UUID不是随机的,有些部分定义得很好,有些部分仍然让我困惑。 E、 g.设备信息服务的广告名称似乎是0000180a xxx,我可以在中找到“180a”https://www.bluetooth.com/specifications/gatt/services/,但子字段“型号字符串”的id为00002a24 xxx

  • 我试图用BLE API扫描附近的蓝牙设备,但它似乎不起作用 我已经在清单中添加了权限 以下内容在创建对象时 创建扫描仪回调对象并进一步扫描 在logcat中,我只看到以下内容 这是我的app build gradle } 有人能指出我在这里遗漏了什么吗?

  • 我正试图在一个项目中实现蓝牙(BLE)网关,以便在硬件和带有应用程序的移动设备之间传输数据。硬件不是唯一的,它可以批量生产,控制器中有相同的程序。 如果制作了100个硬件产品,并排通电,那么设置BLE广播的信息以进行广告的最佳方式是什么,以便移动设备可以接收该信息,并且在任何时候只能连接1个硬件和移动设备。 例如,如果您同时拥有3个相同的健身跟踪手表,并且您只想连接其中一个,那么如何区分手机蓝牙配

  • 我正在尝试构建一个使用蓝牙的android应用程序。在教程中,他们使用128位UUID,但我只有16位UUID。我必须使用服务UUID和蓝牙基础创建一个新的128位UUID。 例子: 警报通知服务UUID(16bit)= 通过组合这两个UUID,我们收到。。。 警报通知服务UUID(128bit)= 有没有合适的方法?