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

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

凤高翰
2023-03-14

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

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

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

“00001800-0000-1000-8000-00805f9b34fb”(通用访问)和“00001801-0000-1000-8000-00805f9b34fb”(通用属性)

第一个服务包含5个特征:

  • 00002a00-0000-1000-8000-00805f9b34fb(“设备名称”)
  • 00002a01-0000-1000-8000-00805f9b34fb(“外观”)
  • 00002a02-0000-1000-8000-00805f9b34fb(“外围隐私标志”)
  • 00002a03-0000-1000-8000-00805f9b34fb(“重新连接地址”)
  • 00002a04-0000-1000-8000-00805f9b34fb(“制造商名称字符串”)

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

我只是想在扫描仪扫描完某些内容后,从扫描仪中获取数据。

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

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

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

共有1个答案

张鹏云
2023-03-14

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

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

 类似资料:
  • 我有一个蓝牙设备,它正在测量力并基本上发送一个值。有一个android应用程序可以连接到它,但我想开发自己的应用程序,因为我想添加一些功能。我设法连接到它,但不知道哪个服务或特征是具有我需要的号码的服务或特征。有人可能知道它可能是其中的哪一个? 服务00001801-0000-1000-8000-00805f9b34fb 服务00001800-0000-1000-8000-00805f9b34fb

  • 问题内容: 我正在尝试从经过持续健康联盟认证的Omron 708-BT血压计中读取数据。我正在关注蓝牙HDP应用程序的此示例。我正在设法连接到设备并以字节格式检索数据,但是无法解析数据以获取所需的值。我正在尝试遵循本PDF第19页上指定的IEEE血压规范。 这是已添加到上面链接的示例代码中的代码。 数据的十六进制表示如下。我相信此数据可以保存血压值中的值,但可能是错误的。我认为这是唯一的原因,因为

  • 我完全不知道如何使用BLE。我需要为Android设备创建一个应用程序,将一个小字符串从一个Android设备发送到另一个Android设备。我没有使用任何传感器类型的设备。我只需要使用BLE连接将一个字符串从一个电话发送到另一个电话。根据我的理解,我需要创建一个自定义服务,在一个中央设备上实现一个GATT服务器,并让一个外围设备作为一个客户端访问它,但我甚至不确定这是否是我的情况所需要的。我在互

  • 连接设备 接口说明 用于连接 扫描出来的蓝牙设备。 参数说明 字段 类型 必须? 说明 device RKBLEDevice 是 蓝牙设备 示例代码 Swift: RokidMobileSDK.binder.connect(device: RKBLEDevice) Objc: [RokidMobileSDK.binder connect:device]; 断开设备 接口说明 用于断开已经连接的

  • 连接蓝牙设备 接口说明 接口需传入蓝牙名称(蓝牙address重启后会变) 参数说明 字段 类型 必须? 说明 name String 是 设备名称 举个大栗子 RokidMobileSDK.binder.connectBT(name, new IBTConnectCallBack() { @Override public void onConnectSucceed(BTDevic

  • 我在连接时遇到问题。起初它有效,而不是不起作用,除非我取消配对设备。我已经得到了所有可能发生的异常,套接字关闭,管道关闭,连接被拒绝,端口已经在使用中,等等。 我知道android 4.2之前版本的蓝牙存在问题(https://code.google.com/p/android/issues/detail?id=37725). 我在连接这些设备时遇到问题的设备: Htc one(Android4.