Эй @ Тос, надеюсь, это именно то, что вы ищете. У меня нет устройства под рукой, но это должно работать.
Необходимые ссылки
System.Device
WMAppManifest (Добавьте это к дочернему элементу Capabilities)
<Capability Name="ID_CAP_LOCATION" />
1009 * XAML *
<Button Click="ButtonClick"/>
Код позади
GeoCoordinateWatcher _GeoCoordinateWatcher;
private void ButtonClick(object sender, RoutedEventArgs e)
{
try
{
_GeoCoordinateWatcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
_GeoCoordinateWatcher.MovementThreshold = 10; // 10 meters.
_GeoCoordinateWatcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(GeoCoordinateWatcherPositionChanged);
_GeoCoordinateWatcher.Start();
}
catch
{
}
}
private void GeoCoordinateWatcherPositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
_GeoCoordinateWatcher.PositionChanged -= GeoCoordinateWatcherPositionChanged;
string latitude = e.Position.Location.Latitude.ToString("0.0000");
string longitude = e.Position.Location.Longitude.ToString("0.0000");
string altitude = e.Position.Location.Altitude.ToString("0.0000");
_GeoCoordinateWatcher.Stop();
_GeoCoordinateWatcher.Dispose();
_GeoCoordinateWatcher = null;
SendEmail("ToAddress@EmailClient.com", "Location", string.Concat("Hello, I'm here: ", latitude, " ", longitude, " ", altitude);
}
private void SendEmail(string to, string subject, string message)
{
EmailComposeTask emailcomposer = new EmailComposeTask();
emailcomposer.To = to;
emailcomposer.Subject = subject;
emailcomposer.Body = message;
emailcomposer.Show();
}