【Windows Phone 8】背景取得當前位置

【Windows Phone 8】背景取得當前位置

前言:

 

繼上篇【取得所在位置】,雖然在應用程式中可執行,

但使用者將應用程式移至背景中就無法再取得當前位置,接下來實作接續前一篇範例。

參考【MSDN

 

實作:

Step-1 在【App.xaml.cs】檔中建立全專案使用變數

說明:此變數用於判斷是否開始背景執行

 




 

Step-2 在【App.xaml】檔案下註冊背景執行時的事件

 

RunningInBackground

程式碼:

 




 

Step-3 在【App.xaml.cs】加入背景執行時的事件

說明:此事件發生於應用程式開始在背景執行時。

 


{
    App.location = true;
}

 

 

Step-4 在【Properties】>【WMAppManifest.xml】右鍵【檢視程式碼】

找到【<DefaultTask Name="_default" NavigationPage="MainPage.xaml" />】這段替換為下列程式碼

 


  <BackgroundExecution>
     <ExecutionType  Name="LocationTracking" />
  </BackgroundExecution>
</DefaultTask>

 

 


{
       Dispatcher.BeginInvoke(() =>
      {
           LatitudeTextBlock.Text = args.Position.Coordinate.Latitude.ToString("0.000000");
           LongitudeTextBlock.Text = args.Position.Coordinate.Longitude.ToString("0.000000");
      });
}
 else
{
       ShellToast toast = new ShellToast();
       toast.Title = "位置:";
       toast.Content = args.Position.Coordinate.Latitude.ToString("0.00") + ":" + args.Position.Coordinate.Longitude.ToString("0.00");
       toast.Show();
}
 
LocationBack
Show