private async void BackGround_Title() { try { await VoiceCommandDefinitionManager.InstallCommandDefinitionsFromStorageFileAsync(await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///VoiceCommand.xml"))); var status = await BackgroundExecutionManager.RequestAccessAsync(); foreach (var cur in BackgroundTaskRegistration.AllTasks) { if (cur.Value.Name == "TitleTask") { return; } } var builder = new BackgroundTaskBuilder(); builder.Name = "TitleTask"; builder.TaskEntryPoint = "mediaservice.TitleUpdateTask"; builder.SetTrigger(StorageLibraryContentChangedTrigger.Create(await StorageLibrary.GetLibraryAsync(KnownLibraryId.Music))); builder.AddCondition(new SystemCondition(SystemConditionType.InternetAvailable)); var task = builder.Register(); } catch (Exception e) { Debug.WriteLine(e.Message); } }
private async Task Register() { BackgroundExecutionManager.RemoveAccess(); var promise = await BackgroundExecutionManager.RequestAccessAsync(); if (promise == BackgroundAccessStatus.DeniedByUser || promise == BackgroundAccessStatus.DeniedBySystemPolicy) { return; } foreach (var task in BackgroundTaskRegistration.AllTasks) { if (task.Value.Name == TaskName) { task.Value.Unregister(true); } } var builder = new BackgroundTaskBuilder(); builder.Name = TaskName; builder.TaskEntryPoint = EntryPoint; var library = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures); var contentChangedTrigger = StorageLibraryContentChangedTrigger.Create(library); builder.SetTrigger(contentChangedTrigger); builder.IsNetworkRequested = true; builder.CancelOnConditionLoss = true; try { BackgroundTaskRegistration registration = builder.Register(); Debug.WriteLine(registration.Name); Debug.WriteLine(registration.TaskId); Debug.WriteLine(registration.Trigger); } catch (Exception e) { Debug.WriteLine(e.Message); throw; } }