从android 7应用程序中的蓝牙LE设备接收数据时出现问题



我有一个android 7设备,我正在上面开发一个应用程序。此外,我有一个无线电波扫描仪,它的功能就像蓝牙键盘(它扫描标签,并通过蓝牙传输数据,如果用户打开了一些写入应用程序,并且与扫描仪配对,它应该在该应用程序中写入数据(。

在我的安卓7设备上的应用程序中,我有一个输入字段,当扫描到一些东西时,我想让扫描仪写入该字段。最好的情况是扫描仪可以正常工作,而无需我编写任何代码,比如我的Galaxy s10手机(在这里,扫描仪在配对后可以无缝工作(,但由于该设备运行的是android 7,我知道有些蓝牙处理不是自动完成的,因此,我必须从我正在开发的应用程序内部通过蓝牙连接到扫描仪。

当我使用BluetoothGatt通过应用程序连接到扫描仪时,我可以使用discoverServices((看到扫描仪有两个可用的服务:

"00001800-0000-1000-8000-00805f9b34fb";(通用访问(和"00001801-0000-1000-800-000805f9b34fb";(通用属性(

第一项服务包含5个特性:

  • 00002a00-0000-1000-800-000805f9b34fb("设备名称"(
  • 00002a01-0000-1000-800-000805f9b34fb("外观"(
  • 00002a02-0000-1000-800-000805f9b34bb("外围隐私标志"(
  • 00002a03-0000-1000-800-000805f9b34bb("重新连接地址"(
  • 00002a04-0000-1000-800-000805f9b34fb("制造商名称字符串"(

第二个服务包含0个特征。

我只是想在扫描仪扫描完一些东西后,掌握一下扫描仪的数据。

我试着从所有五个特征中读取,但正如它们的名字所示,它们似乎与扫描仪上的信息有关,而不是与扫描过的数据有关。

有什么方法可以查看扫描仪除了这些特征之外还包含的数据吗?我以为数据可能会在第二个服务中,但由于它不包含任何特征,我似乎无法对它做任何事情,是否有其他方法可以将数据存储在扫描仪中?

链接到扫描仪的简短手册。它不是很彻底,但不幸的是,我能找到的唯一文档(第3.3节描述了蓝牙(:http://en.cmrfid.org/wp-content/uploads/2018/10/user-manual-Electronic-ear-bar-reader.pdf

在这个过程的早期,我尝试将android设备与扫描仪一次又一次地配对,并尝试忘记扫描仪并删除蓝牙缓存和网络数据,试图使它们连接。我认为这可能会导致扫描仪以某种方式记住android设备并拒绝与之配对。

在重命名android设备后,我能够成功地再次将它们配对。安卓设备仍然不会自动接收数据,但现在我可以发现更多的服务和特性,并找到了保存扫描数据的设备。

最新更新