【发布时间】:2018-12-07 19:41:33
【问题描述】:
我将蓝牙 LE 注册为分组后台任务,但我不确定为什么后台任务甚至没有触发。当我在 powershell 中检查“Get-AppBackgroundTask”时,它似乎已正确注册。这就是我注册任务的方式:
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....
}
}
当外部外围设备正在使用范围内的服务 guid 进行广告时,如何触发蓝牙文件后台任务?
【问题讨论】:
标签: windows uwp bluetooth-lowenergy background-task