无法与绑定的BLE设备

时间:2018-06-05 18:44:02

标签: android bluetooth-lowenergy microchip disconnect

我在Android上创建应用程序,我必须与Microchip的RN4020蓝牙低功耗模块进行通信。我必须与这个模块建立联系以交换数据,几天前一切正常。

现在昨天我突然想到,如果我故意与RN4020失去连接或终止连接,我无法重新连接到它,因为要重新连接我的应用程序,我必须先听取直接广告,这只是在设备是在给定时刻没有连接。我用UART检查了我的RN4020给我的信息。如果我没有联系设备并连接/断开多次UART给我

  

连接

     

连接结束

     

连接

     

连接结束

     

连接

     

连接结束

     

...

现在如果我粘贴设备,相同的代码只给了我

  

连接

即使Android Monitor中的Android Studio标签确认已断开连接并关闭BluetoothGatt,我的RN4020也不同意。

我还从Play Store下载了另一个可以连接到BLE设备和读/写特性的免费应用程序。同样的事发生在那里。如果没有使用RN4020创建绑定,我可以连接和断开连接多次我没有问题但是当创建绑定时,我的手机只是保持连接到RN4020,除非我完全关闭蓝牙。然后在重新打开之后,我可以抓住它的直接广告,但是当我连接时,我再也无法断开连接。

任何人都可以告诉我这是什么意思吗?

编辑:还有一件事 - 当我在手机上转到Application Manager时(Galaxy S4 active / Lolipop),点击运行 - >蓝牙我可以看到它有点状态1进程和11个服务正在运行。其中一项服务是BleAutoConnectService。但无论如何,如果我将其关闭,它不会改变任何东西。

编辑nr 2:当我昨天和我的朋友Sony Xperia(我认为是Z)进行测试时,发生了这种情况:当与RN4020建立新的联系时,我收到了以下消息: UART

  

连接
                                                  ConnParam:0006,0000,07D0
                                                     保税
                                                      ConnParam:0027,0000,07D0
                                                      ConnParam:0006,0000,07D0
                                                      ConnParam:0027,0000,07D0
                                                        连接结束

所以至少那个手机在绑定后断开连接。这就是数据表中关于ConnParam所说的内容:

  

当连接和连接参数由对等方更新时   设备,消息“ConnParam”被发送到UART。消息“ConnParam”   有三个16位参数,即连接间隔,从属   延迟和监督超时分别。

当我向RN4020发送' 命令以显示有关它的重要信息时,它给了我

  

Bonded = FFFFFFFFFFFF, 1 // 1代表私人/随机MAC地址

使用我的设备我刚刚获得

  

连接
  保税

' D' 命令给了我

  

Bonded = FFFFFFFFFFFF, 0 // 0代表公共MAC地址

所以昨天我决定睡觉,但今天一切正常。我可以连接和断开设备是否与我自己的手机绑定了多少次。我不知道为什么会发生这种情况以及如何处理这种随机行为。

0 个答案:

没有答案