gpt4 book ai didi

android - 如何在范围内自动连接 BLE 设备?

转载 作者:行者123 更新时间:2023-11-29 00:27:46 25 4
gpt4 key购买 nike

我正在为 IONIC 2 开发应用程序。我要求当我的 BLE 设备在范围内时自动连接到它。情况是我的应用程序是在后台还是在前台,我想自动连接我的 BLE 设备,如果断开连接,则不断搜索我的设备并在范围内重新连接。有没有办法做到这一点?我已经提到了这个:https://github.com/don/cordova-plugin-ble-central。我也提出了关于检测 BLE 连接的问题:How to register for BLE state notification in IONIC 2 .但是没有解决方案与此相关。但我什么也没找到。请提出任何方法来做到这一点。我想要解决方案,它应该适用于 ios 和 android。

最佳答案

在 Android 中,使用以下属性设置长期运行连接的正确方法:

  1. 如果设备不在范围内,它应该在最终进入范围内时自动连接(无超时)。
  2. 当设备因任何原因断开连接时,Android 应在其进入范围内时自动重新连接。

就是使用https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback)

其中 autoConnect 参数设置为 true。如果设置为 false,它将超时 30 秒,并且在设备断开连接时也不会自动重新连接。

不幸的是,您提到的那个 cordova 插件将 autoConnect 硬编码为 false。因此,您可以更改插件,将 autoConnect 设置为 true,也可以设置扫描,永久扫描并在出现时连接到您感兴趣的设备。但该 cordova 插件使用最大扫描间隔(意味着它扫描 100% 的时间),通常设置为平均扫描 5-10% 的时间,以便不占用 Wi-Fi 带宽,同时也节省电池。 .. 我想说的是,cordova 插件似乎不是为了让您有长时间运行的后台连接而创建的,这可能需要一些时间才能连接。

为了确保您的应用不会在后台被终止,您需要在连接到 BLE 设备的同一进程中的某个位置运行一个“前台服务”( https://developer.android.com/guide/components/services.html#Foreground )。

关于android - 如何在范围内自动连接 BLE 设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42605050/

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