前言:当蓝牙和另一个蓝牙连接后,32feet里有一个Connected据说可以判断蓝牙的连接状态,我试过了并没有用,然后我想到了一个方式来判断蓝牙是否断开。
思路:首选通过已连接的BluetoothClient.DiscoverDevices()方法获取周围可以搜索到的蓝牙,如果蓝牙可以搜索到,那么就对目标蓝牙再次发起连接(使用已经用来连接的BluetoothClient);如果当前蓝牙已经断开连接了,再次连接就会成功;如果蓝牙消失,那么DiscoverDevices()就找不到它了。
PS: 以下代码为项目中使用该功能的截取。 蓝牙的连接方式我使用的时32feet,这个通过VS的NuGet包管理可以获取到。
BluetoothClient client; //蓝牙连接
string RadioCnName = null; //蓝牙名称
public void getDevices(out string a, out string b, out string times)
{
a = null;
b = null;
times = null;
a = client.RemoteMachineName;
RadioCnName = client.RemoteMachineName; //获取到蓝牙名称
b = client.RemoteEndPoint.ToString();
times = DateTime.Now.ToString();
}