首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bluetooth LE disconnect() - Android行为

Bluetooth LE disconnect() - Android行为
EN

Stack Overflow用户
提问于 2021-04-05 17:15:35
回答 1查看 55关注 0票数 0

我有一个关于Android蓝牙LE disconnect()的问题,根据运行场景的不同,它的行为会有所不同。

我的应用程序连接到一个运行GATT服务器的嵌入式设备,通信工作正常。设备没有绑定,配对过程每次我连接到它时都会发生,每次Android活动关闭或暂停时我都会断开连接。

代码语言:javascript
运行
复制
protected void onPause(){
    super.onPause();
    if(mGattUpdateReceiver != null)
        unregisterReceiver(mGattUpdateReceiver);
    if (mBluetoothLeService != null)
        mBluetoothLeService.disconnect();
    
    }

如果连接是空闲的(没有来回通信),那么disconnect()可以正常工作,我可以看到设备接收disconnect事件和一切正常。但是,当我在设备上运行计时器,每750毫秒向android发送一次带有计数值的指示时,当活动暂停/关闭时,不会断开连接。该设备保持发送计数器值并永远接收HVC确认。阻止Android发送HVC的唯一方法是禁用手机上的BT适配器。杀死应用程序没有任何帮助。我在这里看到了这个答案,stackoverflow.com/questions/44521828/android-ble-gatt-disconnected-vs-device-disconnected,它已经4岁了。我们现在的情况是一样的,还是我搞砸了?

EN

回答 1

Stack Overflow用户

发布于 2021-04-06 21:20:27

说得好!

是的,在第二个设备上,它可以按预期工作。只要命中onPause(),就会触发与远程设备的断开连接,而不管通信是否正在进行。所以安卓系统没有问题,但我的第一台设备(SGS8)上的BT栈出了问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66950679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档