![Symbian Developer Library](../../../../../../../a_stock/images/mainheading.gif)
![]() |
![]() |
|
A link layer level ioctl
is provided to disconnect an
baseband link without first closing the open sockets using that link. This
provides the ability to quickly disconnect one or all current Bluetooth
asynchronous connection-oriented links (ACL) open on a device.
The TLMDisconnectACLIoctl
structure contains the
device address of the remote device to be disconnected and the reason code to
be supplied during the disconnection.
To directly disconnect individual Bluetooth ACL links:
Create a TLMDisconnectACLBuf
packaged
structure, which contains the address of the Bluetooth device to be
disconnected and the reason to be given to the other device for its
disconnection.
Call the KLMDisconnectACLIoctl
ioctl on the socket
with the link manager level KSolBtLM
, passing the package buffer.
Here is a simple disconnect example.
Starting with an open socket
RSocket sock;
ret=sock.Open(ss,pInfo.iAddrFamily,pInfo.iSockType,pInfo.iProtocol);
Identify the Bluetooth device to be disconnected and provide a reason for the disconnect.
TLMDisconnectACLBuf aclConnBuf;
aclConnBuf().iDevAddr = devAddr; // devAddr is a TBTDevAddr
aclConnBuf().iReason = 0x13; // Remote User Ended Connection
TRequestStatus stat;
Send Ioctl
command to disconnect.
sock.Ioctl(KLMDisconnectACLIoctl, stat, &aclConnBuf, KSolBtLM);
User::WaitForRequest(stat);
This tutorial set takes you through all the steps involved in setting up and communicating over a Bluetooth connection.
Disconnecting ACL links - This document