Прежде всего, я могу прекрасно определить рекламу своего iBeacon на переднем плане с BluetoothLEAdvertisementWatcher
. Просто триггер для фона не работает с такими же параметрами. Я объявил фоновую задачу на вкладке «Объявления» в файле Package.appxmanifest, как показано здесь:
<Extension Category="windows.backgroundTasks" EntryPoint="App.BluetoothBackgroundTask">
<BackgroundTasks>
<Task Type="bluetooth" />
</BackgroundTasks>
</Extension>
И вот как я регистрирую фоновое задание:
BluetoothLEAdvertisementWatcherTrigger trigger = new BluetoothLEAdvertisementWatcherTrigger();
trigger.AdvertisementFilter.Advertisement.ManufacturerData.Add(
new BluetoothLEManufacturerData() {
CompanyId = 0x4C
}
);
BackgroundTaskBuilder builder = new BackgroundTaskBuilder {
Name = "BluetoothWatcher",
TaskEntryPoint = typeof(BluetoothBackgroundTask).FullName
};
builder.SetTrigger(trigger);
builder.Register();
Я знаю, что задача успешно зарегистрирована, потому что перед регистрацией я могу найти предыдущую с тем же именем и отменить ее регистрацию.
Даже я пытался подать Данные изготовителя вместе с данными, поступающими из iBeacon (этот фильтр тоже хорошо работал с наблюдателем переднего плана).
Итак, на данный момент, я не могу больше думать о том, что я могу делать неправильно. Я попытался изменить StrengthFilter с некоторыми значениями из нескольких примеров в Интернете, но безуспешно.
Есть идеи?