2013-09-25 2 views
1

Кто-нибудь знает, почему мой код ниже всегда появляется, когда я отправил приложение в Магазин. Все работает очень хорошо на устройстве dev. Возможности применения: МЕСТОПОЛОЖЕНИЕ, MAP, IDENTITY_DEVICE, IDENTITY_USER, КАМЕРА, АУДИО, ФОТО, СЕТЕВАЯ, проксимити, PUSH_NOTIFICATION, ДАТЧИКИОшибка с Geolocator Windows Phone

private readonly Geolocator _geolocator = new Geolocator { DesiredAccuracy = PositionAccuracy.Default, MovementThreshold = 100 }; 

private async Task GetCurrentPosition() 
    { 
     //Get current location 
     try 
     { 
      _done.WaitOne(); 
      var position = await _geolocator.GetGeopositionAsync(); 
      if (position != null) 
      { 
       // Get detail address 
       var query = new ReverseGeocodeQuery { GeoCoordinate = new GeoCoordinate(position.Coordinate.Latitude, position.Coordinate.Longitude) }; 
       query.QueryCompleted += OnQueryCompleted; 
       _done.Reset(); 
       query.QueryAsync(); 
      } 
     } 
     catch (Exception ex) 
     { 
      if (ex.Message.Contains("Operation aborted")) 
      { 
       if (MessageBox.Show(AppResources.LocationServiceErrorMsg, AppResources.ApplicationTitle, MessageBoxButton.OKCancel) == MessageBoxResult.OK) 
       { 
        Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-location:")); 
        Application.Current.Terminate(); 
       } 
       else 
       { 
        Application.Current.Terminate(); 
       } 
      } 
     } 
    } 

private void OnQueryCompleted(object sender, QueryCompletedEventArgs<System.Collections.Generic.IList<MapLocation>> e) 
    { 
     _done.Set(); 
     if (e.Result != null && e.Result.Count > 0) 
     { 
      App.AppData.CurrentCountry = e.Result[0].Information.Address.Country; 
      App.AppData.CurrentCity = e.Result[0].Information.Address.City; 
      App.AppData.CurrentStreet = e.Result[0].Information.Address.Street; 

      App.CurrentPosition = e.Result[0].GeoCoordinate; 

      Helper.SaveAppSetting(App.AppData); 

      if (string.IsNullOrEmpty(App.AppData.UserId)) 
      { 
       NavigationService.Navigate(MessageBox.Show(AppResources.UserIdEmptyMsg, AppResources.ApplicationTitle, MessageBoxButton.OKCancel) == MessageBoxResult.OK 
         ? new Uri("/Views/SettingPage.xaml?navCode=userId", UriKind.Relative) 
         : new Uri("/Views/MainPage.xaml", UriKind.Relative)); 
      } 
      else 
      { 
       NavigationService.Navigate(new Uri("/Views/MainPage.xaml", UriKind.Relative)); 
      } 
     } 
    } 
+1

Приведите информацию об ошибке, которую вы получите. – anderZubi

ответ

0

Если вы можете предоставить информацию, содержащуюся в отчете о тестировании, то мы, вероятно, может помочь лучше, хотя их документы обычно самоочевидны.

Здесь сертификационные требования - документ на MSDN, а те, которые относятся к приложениям, использующим местоположение, описаны в разделе 2.7.

Смежные вопросы