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

M. *_*cik 1 performance android bluetooth bluetooth-lowenergy gatt

我正在开发一款与 LE 蓝牙外设配合使用的应用程序。一切正常,我得到了特征服务等。我可以从传感器等获取值。

问题是,应用程序在获取值时有时会“冻结”,有时外设会返回错误的值。我不明白为什么会发生这种情况。

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

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

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

M. *_*cik 5

由于没有人回答我的问题,并且我浏览了由主题(android 蓝牙连接)标记的整个 stackoverflow 问题,我将分享我发现的内容。好吧,说实话我没有找到太多。大多数有关 Android 蓝牙的问题都没有答案或没有正确/令人满意的答案。开发者对BLE的了解这么少吗?真的吗?那是耻辱。但跳到答案...

我发现,你几乎无法更改 Android 手机上的连接任何内容。这都是外围设备的事。我发现只有一个参数可以“修改”,那就是“连接时间间隔”(每次数据传输之间的时间)。我标记为“已修改”,因为您无法设置请求的数字(毫秒)。您只能为 gatt 连接设置 3 个参数:(使用 requestConnectionPriority() 方法)

CONNECTION_PRIORITY_BALANCED, CONNECTION_PRIORITY_HIGH and CONNECTION_PRIORITY_LOW_POWER 
Run Code Online (Sandbox Code Playgroud)

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

但我不确定他们改变间隔的时间。这就是你能改变的一切。您无法更改监督超时(硬编码为 20 秒),您无法更改任何内容。剩下的就是外围配置了。移动操作系统 API 不允许我们进行低级设置。

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