gpt4 book ai didi

android - 自动查找已配对的蓝牙设备,当它们在范围内时

转载 作者:可可西里 更新时间:2023-11-01 18:49:09 27 4
gpt4 key购买 nike

我不是蓝牙专家,想知道有什么可能性可以在彼此范围内时自动找到已配对的蓝牙设备。

背景:在我们的例子中,Android 应用程序需要通过蓝牙 (Rfcomm) 连接到专用附件。两个设备彼此都知道(它们是配对的)。 Android 应用程序注册一个广播接收器。在应用程序启动期间,应用程序启动发现以查找专用配件。如果配件在范围内,一切都很好。

问题:用户在专用附件的范围之外启动应用程序。 Android 应用程序尝试发现附件但没有成功。然后用户进入蓝牙配件的范围。广播接收器不会收到有关现在范围内配件的通知。

相似话题/可能的解决方案stackoverflow 上已经提出了类似的问题(例如 autoconnect to bluetooth device when in range )。但不断尝试发现范围内的蓝牙设备并不是我想要的,因为这会导致 Android 设备耗电过多。

另一种解决方案是尝试在 Activity 的 onResume 方法中连接到配对设备。这可行,但缺点是应用程序无法在后台运行。因此,用户必须至少将应用程序带到前台一次以启动连接。

我想到的第三个想法是在 Android 应用程序中也实现一个服务器套接字。当 android 应用程序启动并且发现没有成功完成时,Android 应用程序可以创建服务器套接字并监听配件的传入通知。这在某些情况下会有所帮助(例如,用户启动他的应用程序,接近配件,激活配件,配件在启动时通知应用程序它现在在范围内)。但这仍然不是 100% 的解决方案,因为两个设备都可以在彼此的范围之外启动。此外,还必须实现其他功能(Android 设备中的蓝牙服务器套接字……)。

所以我想知道是否存在更好的解决方案。我正在寻找一种不需要额外的 ServerSocket 的解决方案,并且我总是收到两个已经配对的设备在彼此范围内的通知:-)

感谢您的帮助!

最佳答案

首次连接设备后,将 mac 地址保存在本地列表中。断开连接时,使用 connectGatt 并将 autoconnect 设置为 true 以在您处于范围内时自动重新连接。

关于android - 自动查找已配对的蓝牙设备,当它们在范围内时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com