1

我正在尝试运行以下两个 Google 示例项目:

1) BLE Gatt 服务器示例https://github.com/androidthings/sample-bluetooth-le-gattserver

2) BLE Gatt 客户端示例https://github.com/googlesamples/android-BluetoothLeGatt

我正在使用 2 部手机:

1)三星盖乐世 S5

2)摩托罗拉 G4 Plus

在添加了提供 BLE 和粗略位置访问权限的小代码片段后,这些项目与托管服务器的三星 Galaxy S5(即 github 项目 1)和运行 BLE Gatt 客户端的 Moto G4 Plus 一起工作。

但是,在颠倒角色时,即Samsung Galaxy S5运行客户端和Moto G4 Plus托管服务器,我无法成功连接。

我尝试在另一部手机(Moto G5)上运行客户端,但也失败了。

似乎Moto G4 Plus无法成功连接。

谁能建议为什么会发生这种情况?我需要处理任何特殊权限吗?

附加信息:尝试调试应用程序后,我发现在有问题的设备(即 Moto G4 Plus)上,调用 connectGatt 后,调用了 BluetoothGattCallback 但未调用 onConnectionStateChange()。

4

1 回答 1

0

似乎重新启动手机可以解决此问题。

正如我之前报道的那样,Moto G4 Plus 正在生成一个 BluetoothGattCallback,但并没有真正在回调中执行函数。我花了大约一周的时间试图了解这是硬件限制还是权限问题。我什至多次打开和关闭蓝牙。显然,关闭手机并重新启动解决了所有问题。这可能对可能面临同样问题的人有用。

于 2018-03-01T06:00:34.797 回答