2011-11-29 2 views
0

빠른 질문. 응용 프로그램이 myChannel_ShellToastNotificationReceived 함수가 호출되어야한다 전경에있는 동안 나는 토스트 알림을 수신 그렇다면Windows phone 7 포어 그라운드에 앱이있는 토스트 알림

myChannel.ShellToastNotificationReceived += new EventHandler<NotificationEventArgs>(myChannel_ShellToastNotificationReceived); 

: 내가 이런 짓을. 이 함수에서 내가 가진 :

void myChannel_ShellToastNotificationReceived(object sender, NotificationEventArgs e) 
{ 
    Dispatcher.BeginInvoke(() => 
    { 
     ApplicationTitle.Text = "Toast Notification Message Received"; 
    }); 
} 

문제는 함수가 호출되지 않습니다 것을하고이 ApplicationTitle은 변경되지 않습니다.

뭐가 잘못 되었나요?

+1

실제로 알림을 수신했는지 확인할 수 있습니까? – abhinav

+0

응용 프로그램이 포 그라운드에 있지 않은 경우 토스트 메시지가 화면 상단에 나타납니다 ... 그래서 생각 ... 그래서 그냥 응용 프로그램을 떠나 내 서비스가 밀어를 보내도록 지시하면 작동합니다. 그러나 포 그라운드에있을 때가 아닙니다. –

답변

1

나는 문제를 발견했다 ... 그것은 전송 된 토스트 XML이 형식이 잘되어있어서 전화기가 앱에서 수신 할 수 있지만 내부에있을 때는 그렇지 않다. xml을 "hand"로 작성했으며 xmlWriter를 사용하지 않고 작업했습니다.

string toastMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + 
     "<wp:Notification xmlns:wp=\"WPNotification\">" + 
      "<wp:Toast>" + 
       "<wp:Text1>" + title + "</wp:Text1>" + 
       "<wp:Text2>" + message + "</wp:Text2>" + 
      "</wp:Toast>" + 
     "</wp:Notification>"; 
0

채널이 알림을 수신하도록 등록되어 있습니까?

+0

예. 응용 프로그램이 포어 그라운드에 있지 않은 경우 실제로 토스트 알림이 작동하지만 응용 프로그램을 열었을 때 아닙니다. –