我正在开发一个有两个应用程序的系统:第一个是Android上的应用程序,第二个是在Linux上运行的应用程序。他们必须通过BLE协议进行通信
在Linux上,我修改了Bluez 4.1(btgattserver.c)的代码。 Linux上的应用程序将广播BLE广告商包,并等待从Android连接。
在Android上,我使用此API连接到Linux应用程序:
public BluetoothGatt connectGatt (Context context, boolean autoConnect, BluetoothGattCallback callback)
我的问题是:在Android 5上,这些应用程序可以正常通信。但是在Android 4.4.2上,Android应用程序无法连接到Linux应用程序
我在Android上启用了“启用蓝牙HCI监听”选项,并在Android 5和Android 4.4.2上获得了HCI的日志文件进行比较。
我发现在Android 5.上,请求连接有PSM,这是SDP,但Android 4.4.2上的请求连接有PSM,这是ATT。 Android 4.4.2上的连接被Linux应用程序拒绝(请参阅附件中的图片) 请告诉我为什么Android 4.4.2与PSM创建连接请求是ATT?以及如何解决这个问题?
因为我的英语不好,所以我很抱歉,如果我的问题让你很难理解。
谢谢你。