我想知道的是:
我想知道安卓系统(如安卓智能手机)如何自动连接到之前配对过的设备。
例如,我在第一天通过"打开扫描/广告 -> 点击配对"
的步骤将我的蓝牙耳机与我的安卓智能手机配对。当我在第二天打开耳机的广告时,它会自动连接,第三天、第四天等也是如此。重点是,我不需要再次让我的智能手机进行扫描以找到我的(已配对的)耳机。
我不明白安卓系统如何发现已配对的设备已经打开。安卓系统是否会定期后台扫描?即使我没有点击“扫描”按钮?
我提问的原因:
我希望在进行配对后,我的应用程序可以自动连接到自定义的BLE设备。我成功地使用createBond()
方法进行了配对(绑定),但之后,我无法找到如何进行自动连接。我知道可以像这样打开自动连接功能:connectGatt(XXX, true, XXX)
,但是当BLE设备断开连接几天后,此自动连接功能将无效。
因此,我希望我的应用程序可以像安卓系统和蓝牙耳机一样运行。但即使我挖掘AOSP代码,也找不到安卓蓝牙系统的工作原理。
我发现有很多类似于我的问题(这里和这里)的问题,但没有答案。
提前致谢。
更新:
我发现当配对的耳机被打开(开始广告)时,bt_btif
会被激活(与LG智能手机和Nexus 5一起)。但是,当我的自定义BLE设备没有激活bt_btif
时,该怎么办?