如何断开ACL连接
链路层的ioctl在没有首先关闭使用一个基带连接的套接字情况下断开这个连接。它可以用来快速关闭一个设备上打开的所有蓝牙连接。TLMDisconnectACLIoctl
包含了一个用来断开连接的远程设备的地址和断开连接的原因代码
直接断开单个的蓝牙ACL连接:
· 建立一个TLMDisconnectACLBuf
结构,里面包含了要断开的蓝牙设备地址和断开原因。
· 通过KSolBtLM对套接字调用KLMDisconnectACLIoctl
ioctl,传递包缓冲数据
举例
// Open socket
RSocket sock;
ret=sock.Open(ss,pInfo.iAddrFamily,pInfo.iSockType,pInfo.iProtocol);
(then, assuming ret==KErrNone)
// Send Ioctl
TLMDisconnectACLBuf aclConnBuf;
aclConnBuf().iDevAddr = devAddr; // devAddr is a TBTDevAddr
aclConnBuf().iReason = 0x13; // Remote User Ended Connection
TRequestStatus stat;
sock.Ioctl(KLMDisconnectACLIoctl, stat, &aclConnBuf, KSolBtLM);
User::WaitForRequest(stat);