我们注意到GattService中的所有GATT操作都会带两个参数,一个是clientIf,另一个是address,拿到这两个参数后,都会调用Integer connId = mClientMap.connIdByAddress(clientIf, address);获取对应的connId,然后之后的操作都是以这个connId为Key。我们看connIdByAddress的实现:
Integer connIdByAddress(int id, String address) {
App entry = getById(id);
if (entry == null) return null;
Iterator<Connection> i = mConnections.iterator();
while (i.hasNext()) {
Connection connection = i.next();
if (connection.address.equalsIgnoreCase(address) && connection.appId == id)
return connection.connId;
}

本文深入探讨Android蓝牙Gatt服务中的Connection ID,解析如何通过clientIf和address获取connId,并分析connId的生成过程,揭示在设备连接和通信中connId的重要性及其与App和clientIf的关系。

5250

被折叠的 条评论
为什么被折叠?



