Android蓝牙BLE我可以修改哪些连接的配置参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android蓝牙BLE我可以修改哪些连接的配置参数相关的知识,希望对你有一定的参考价值。

我正在开发一个使用蓝牙外设一个LE的应用程序。一切正常,我有特色服务等。我可以从传感器等获得价值。

问题是,在获取值时,app会不时'冻结',有时候外围设备会返回错误的值。我无法弄清楚为什么会这样。

所以我想尝试的是配置一些关于手机和设备之间连接的参数。这就是为什么我想知道在连接时我可以设置哪些参数(例如,在GATT的实例上,但不仅仅是)。我试图搜索有关它的一些信息,但它的信息很少。

这就是为什么我想要一个可以改变设备之间连接性能的参数列表。

我想做的最后一件事就是改变外围设备(adafruit)方面的一切。

答案

由于没有人回答我的问题,我经历了主题(android蓝牙连接)标记的整个stackoverflow问题,我将分享我发现的内容。嗯,说实话,我找不到多少。关于android蓝牙的大多数问题都没有回答或没有正确/满意的答案。开发人员对BLE的了解如此之低?真?那太遗憾了。但跳到答案......

我想到的是,你几乎无法改变Android手机上的连接。这一切都在外围设备的业务中。我发现只有一个参数可以被“修改”,即“连接时间间隔”(每次数据传输之间的时间)。我标记为'已修改',因为您无法设置请求的数字(毫秒)。您只能为gatt连接设置3个参数:(使用requestConnectionPriority()方法)

CONNECTION_PRIORITY_BALANCED, CONNECTION_PRIORITY_HIGH and CONNECTION_PRIORITY_LOW_POWER 

更多信息(但仍然不多)(https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#requestConnectionPriority(int)

但我不确定他们什么时候改变间隔。这就是你可以改变的一切。您无法更改监督超时(硬编码为20秒),您无法更改任何内容。所有剩下的都用于外设配置。 Mobile OS API不允许我们进行低级别设置。

如果有人知道更多,请分享!

以上是关于Android蓝牙BLE我可以修改哪些连接的配置参数的主要内容,如果未能解决你的问题,请参考以下文章

Android-Ble蓝牙开发Demo示例–扫描,连接,发送和接收数据,分包解包(附源码)

esp32不使用蓝牙助手连接蓝牙

Android BLE蓝牙踩坑总结

Android蓝牙开发——BLE(低功耗蓝牙)(附完整Demo)

Android-Ble蓝牙通讯开发–扫描,连接,发送和接收数据,分包解包(附源码)

Android 4.4:低功耗蓝牙;无需扫描 BLE 设备即可连接