gpt4 book ai didi

android - android系统如何自动连接到配对设备?

转载 作者:搜寻专家 更新时间:2023-11-01 08:35:44 25 4
gpt4 key购买 nike

我想知道的:

我想知道 android 系统(如 Android 智能手机)如何自动连接到之前配对的设备。

例如,我在第 1 天按照“打开扫描/广告 -> 点击配对” 的过程将我的蓝牙耳机与我的 android 智能手机配对。当我在耳机上打开广告,它会在第 2、3、4 天自动连接,依此类推。关键是,我不必让我的智能手机再次扫描来找到我的(配对的)耳机。

我无法理解android系统如何发现配对设备已打开。 android系统是否在后台定期扫描?即使我不点击“扫描”按钮?

我为什么问:

我想让我的应用在配对后自动连接到定制的 BLE 设备。我成功地使用 createBond() 方法进行配对(绑定(bind)),但在那之后,我找不到如何进行自动连接。我知道我可以像这样打开自动连接功能,connectGatt(XXX, true, XXX),但是当 BLE 设备断开几天后,这个自动连接功能就不起作用了。

所以我想让我的应用程序像安卓系统和蓝牙耳机一样工作。但是即使我挖掘 AOSP 代码,我也找不到 android 蓝牙系统是如何工作的。

我发现了很多关于像我这样的问题的问题(herehere),但没有答案。

提前致谢。

更新:

我发现当配对的耳机打开(开始播放广告)时,bt_btif 被激活(使用 LG 智能手机和 Nexus 5)。但是 bt_btif 无法使用我的自定义 BLE 设备激活...我该怎么办?

最佳答案

执行 connectGatt(XXX, true, XXX) 是正确的方法。 gatt.connect() 也会启动自动连接。执行该操作后,您的手机将扫描该设备,一旦出现,它就会连接到该设备。唯一会中断此调用的是手机上的蓝牙关闭或您的应用程序进程被终止。为了避免你的进程被杀死,让你的应用有一个前台服务。

然而,有一个问题,Android 中有一个错误,有时会使自动连接改为直接连接(并在 30 秒左右后取消)。参见 https://code.google.com/p/android/issues/detail?id=69834 .您需要使用反射来避免此错误。

关于android - android系统如何自动连接到配对设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36915530/

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