高通Android 11 平台 GATT 连接过程

本文详细剖析了在Android 11平台上,应用如何通过高通的蓝牙服务和HAL进行BLE GATT连接的过程。从APP层的connectGatt()方法开始,经由Binder机制,蓝牙服务的注册,再到JNI接口,最后到硬件抽象层HAL的实现,层层深入,揭示了BLE设备连接的完整流程。
摘要由CSDN通过智能技术生成

低功耗蓝牙(BLE)设备的通信基本协议是 GATT, 要操作 BLE 设备,第一步就是要连接设备,其实就是连接 BLE 设备上的 GATT service.

APP层通过调用如下方法,来创建一个 GATT 连接的:

mBluetoothGatt = device.connectGatt(this, false, mGattCallback);

这里调用了方法 connectGatt(),我们来看一下源码,代码在

2423      @RequiresBluetoothConnectPermission
2424      @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
2425      public BluetoothGatt connectGatt(Context context, boolean autoConnect,
2426              BluetoothGattCallback callback) {
2427          return (connectGatt(context, autoConnect, callback, TRANSPORT_AUTO));
2428      }

中间多次重写connectGatt方法,最终跳转到如下方法
...
2533      @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专业开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值