Ранее я выполнял сопряжение с устройством Bluetooth, поддерживающим RFCOMM. Когда мое приложение открыто, я постоянно пытаюсь подключиться к устройству, открывая файл RFCOMM. Таким образом, мое приложение автоматически подключается, когда устройство находится в зоне действия.
deviceInfoCollection = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));
LogData(String.Format("Number of mldp devices is {0}", deviceInfoCollection.Count));
foreach (DeviceInformation deviceInfo in deviceInfoCollection)
{
LogData(String.Format("ID:{0}, NAME:{1}", deviceInfo.Id, deviceInfo.Name));
}
Затем запустите это по таймеру:
try
{
// The first time this method is invoked by a store app, it should be called
// from a UI thread in order to display the consent prompt
// https://msdn.microsoft.com/en-us/windows.devices.bluetooth.rfcomm.rfcommdeviceservice.fromidasync
RfcommDeviceService rfcommService = await RfcommDeviceService.FromIdAsync(deviceInfo.Id);
LogData(String.Format("ID:{0}, NAME:{1}", deviceInfo.Id, deviceInfo.Name));
}
catch (Exception)
{
LogData(String.Format("Can not request rfcomm service from device ID:{0}, NAME:{1}", deviceInfo.Id, deviceInfo.Name));
}
Есть ли способ запросить, когда устройство находится в пределах досягаемости, а не пытаться подключиться? Я бы предпочел пытаться подключиться только тогда, когда устройство находится в пределах досягаемости.