1

최근에 8.1 Silverlight로 업그레이드 한 Windows Phone 8 응용 프로그램이 있습니다. 새로운 타일 템플릿을 사용하고 싶습니다. 지금은 ShellTile을 사용하는 ScheduledTaskAgent가 있습니다.Windows Phone 8.1 라이브 타일 배경 작업

새 라이브 타일을 사용하기 위해 WMAppManifest.xml에서 알림 서비스를 WNS로 변경했습니다. 나는 오래 된 배경 작업을 등록하는 코드를 제거하고 대신에이 코드를 추가 :

public sealed class LiveTileBackgroundTask : IBackgroundTask 
{ 
    public void Run(IBackgroundTaskInstance taskInstance) 
    { 
     BackgroundTaskDeferral deferral = taskInstance.GetDeferral(); 

     const string xml = "<tile>" 
          + "<visual>" 
          + "<binding template='TileWideText01'>" 
          + "<text id='1'>Text Field 1 (larger text)</text>" 
          + "<text id='2'>Text Field 2</text>" 
          + "<text id='3'>Text Field 3</text>" 
          + "<text id='4'>Text Field 4</text>" 
          + "<text id='5'>Text Field 5</text>" 
          + "</binding> " 
          + "</visual>" 
          +"</tile>"; 

     XmlDocument doc = new XmlDocument(); 
     doc.LoadXml(xml); 

     TileNotification tileNotification = new TileNotification(doc); 
     TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification); 

     deferral.Complete(); 
    } 
} 

내가 추가 :

var backgroundAccessStatus = await BackgroundExecutionManager.RequestAccessAsync(); 
if (backgroundAccessStatus == BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity || 
    backgroundAccessStatus == BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity) 
{ 
    foreach (var task in BackgroundTaskRegistration.AllTasks) 
    { 
     if (task.Value.Name == "LiveTileBackgroundTask") 
     { 
      task.Value.Unregister(true); 
     } 
    } 

    BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder(); 
    taskBuilder.Name = "LiveTileBackgroundTask"; 
    taskBuilder.TaskEntryPoint = "BackgroundTasks.LiveTileBackgroundTask"; 
    taskBuilder.SetTrigger(new TimeTrigger(15, false)); 
    var registration = taskBuilder.Register(); 
} 

가 나는 윈도우 폰 8.1 Windows 런타임 구성 요소가 BackgroundTask가 LiveTileBackgroundTask라는 포함 BackgroundTasks라고 만든 내 Windows Phone 프로젝트에서이 어셈블리에 대한 참조.

엔트리 포인트가 BackgroundTasks.LiveTileBackgroundTask 인 내 Package.appxmanifest에 백그라운드 작업 선언을 추가했습니다. 타이머 및 시스템 이벤트를 지원되는 작업 유형으로 선택했습니다.

그러나 앱을 실행해도 아무런 변화가 없습니다. 라이브 타일이 표시되지 않습니다. 나는 백그라운드 작업을 통해 도망 갔고 모든 것이 예외없이 잘되었다.

+0

안녕하세요, 백그라운드 작업 대신 포 그라운드에서 타일을 업데이트 해 보셨습니까? 내가 물었던 이유는 전경에서 타일을 업데이트 할 수 없기 때문입니다 ... –

+0

안녕 신화, 나는 그것을 시도하고 그것도 작동하지 않았다. –

+0

이 하나의 http : // stackoverflow를 살펴보십시오.com/questions/23589479/new-live-tiles-dont-work-in-windows-phone-silverlight-8-1-apps –

답변

1

연속 백그라운드 실행은 실버 라이트 8.1 애플 리케이션

를 지원하지 않는 윈도우 8 개 애플리케이션은 사용자가 자리를 비울 특정 조건 하에서 응용 프로그램에서 탐색 한 후 백그라운드에서 실행을 계속할 수 있습니다 전화. 이 기능은 Silverlight 8.1 앱에서 사용할 수 없습니다. 이 기능이 필요한 경우 Windows Phone 8 앱을 계속 사용해야합니다. 더 내용 Windows Phone 용 백그라운드에서 위치 추적 응용 프로그램 실행을 참조하십시오 8.

Platform compatibility and breaking changes for Windows Phone Silverlight 8.1 apps

윈도우 폰 8.1 Windows 런타임 구성 요소는 윈도우 폰 8.1 런타임 (스토어) 응용 프로그램에서만 사용할 수 있습니다

+0

그건 그게 아니야. 그것은 "연속 배경"작업이 아니며 주기적으로 실행되어야하는 일반적인 배경 작업입니다. 그것은 그 일을하지만, 타일은 업데이트되지 않습니다. 호환되지 않으면 컴파일 할 수 없었을 것입니다. WP8.1 Silverlight에서 새 타일 템플릿을 사용할 수 있어야하지만 이전 ScheduledTaskAgent와 함께 작동하지 않는다고 생각합니다. –

+1

비평하기 전에 링크에 쓰여있는 내용을 더 잘 읽고, 다음 단락을 참조하십시오. 이전 ScheduledTaskAgent를 8.1로 업그레이드 했습니까? 그리고 Windows Phone 8.1 런타임 구성 요소를 Windows Phone Silverlight 8.1 응용 프로그램 용으로 사용한다는 생각부터 시작하십시오. RT 플랫폼에서만 사용할 수있는 "새로운 타일 템플릿을 사용하고 싶습니다." Silverlight – IceFog

+0

"Silverlight 용 RT 플랫폼 전용"-> 죄송하지만 사실이 아닙니다. Microsoft의 여러 사람들이 WP8.1 SL이 새로운 타일 템플릿을 사용할 수 있음을 명시 적으로 확인했습니다. –

3

"라이브 타일이 나타나지 않습니다."라고 말하면 게시 한 코드는 라이브 타일을 만들지 않으며 단지 하나만 업데이트합니다. 수동으로 고정해야합니다. 기본 타일은 코드를 통해 고정 될 수 없습니다.

이것이 문제가되지 않는다면 와이드 타일을보고 있지 않은 것일 수 있습니다. 이 템플릿은 와이드 타일 용이므로 정사각형 타일은 업데이트되지 않습니다. NotificationsExtensions 라이브러리를 사용하는 것이 좋습니다. 원래 Windows Store 앱용 이었지만 WP 용으로도 사용할 수 있다고 생각합니다. (나는 그것을 사용해 왔지만 테스트를 위해서만, 실제는 아니기 때문에 문제가있을 수 있습니다.) 너비와 정사각형 타일 모두에 대해 템플릿과 매개 변수를 쉽게 지정할 수 있습니다.

마지막으로 넓은 타일을 사용하려면 Package.appxmanifest 파일을 수동으로 편집해야합니다. DefaultTile 요소에 Wide310x150Logo 특성을 추가해야합니다.

내가 생각할 수있는 전부입니다. 희망이 도움이됩니다.