我正在尝试创建一个简单的应用程序来显示附近的蓝牙设备(这个可以正常工作)
此外,我正在尝试查找特定的蓝牙设备(我的MAC和它已在Windows中配对)是否在范围内。这是一款Android手机,默认情况下它设置为Invisible到附近的设备,但这不会是一个问题,因为它已经在Windows中配对了,对吗?
使用此代码:
BluetoothClient BTClient = new BluetoothClient();
BluetoothDeviceInfo[] BTDeviceInfo = BTClient.DiscoverDevices();
正在查找“可见设备”,它还会向我显示配对设备的天气是否在范围内!
如何检查配对设备是否在范围内?没有设置并使其“可见”会更好
答案 0 :(得分:0)
可能为时已晚,但是您可以使用 BTClient.DiscoverDevicesInRange(); 然后在该列表中查找您的设备。
另一种方法是尝试使用其蓝牙地址读取设备中的服务,如果不在范围内,则会出现异常。
private static Boolean IsInRange(BluetoothDeviceInfo device)
{
Guid fakeUuid = new Guid("{F13F471D-47CB-41d6-9609-BAD0690BF891}");
try
{
ServiceRecord[] records = device.GetServiceRecords(fakeUuid);
return true;
}
catch(SocketException ex)
{
if (ex.ErrorCode == 10040) return true;
return false;
}
}