Я регистрирую Bluetooth LE как сгруппированную фоновую задачу, но я не уверен, почему фоновая задача даже не запускается. Похоже, что он зарегистрирован правильно, когда я проверяю «Get-AppBackgroundTask» в PowerShell. Вот как я регистрирую задачу:
Guid bleServiceGuid = new Guid("xxxxxx-xxxx-xxxx-xxx-xxxxxx");
private void RegisterGroupedBackgroundTask(){
BluetoothLEAdvertisementWatcherTrigger bleTrigger = new
BluetoothLEAdvertisementWatcherTrigger(); bleTrigger.AdvertisementFilter.Advertisement.ServiceUuids.Add(bleServiceGuid);
bleTrigger.SignalStrengthFilter.InRangeThresholdInDBm = -65;
bleTrigger.SignalStrengthFilter.OutOfRangeThresholdInDBm = -75;
bleTrigger.SignalStrengthFilter.OutOfRangeTimeout = TimeSpan.FromMilliseconds(2000);
bleTrigger.SignalStrengthFilter.SamplingInterval = TimeSpan.FromSeconds(1);
var bluetoothLeTask = BackgroundTasksConfiguration.RegisterBackgroundTask(null,
BackgroundTasksConfiguration.GroupedBackgroundTaskName,
bleTrigger,
null,
group);
}
Проблема в том, что точка входа в фоновую задачу никогда не достигается:
BackgroundTaskDeferral deferral = null;
IBackgroundTaskInstance _taskInstance = null;
public void Run(IBackgroundTaskInstance taskInstance){
deferral = taskInstance.GetDeferral();
_taskInstance = taskInstance;
var details = _taskInstance.TriggerDetails as Windows.Devices.Bluetooth.Background.BluetoothLEAdvertisementWatcherTriggerDetails;
if (details != null){
//Get rssi values....
}
}
Как мне запустить фоновую задачу Bluetooth, когда внешнее периферийное устройство размещает рекламу с указанием диапазона обслуживания?