2017-03-22 28 views
-1

我只是想開發一個小應用程序,這給了我目前的位置。所以我找到了我輸入到我的代碼中的這個插件。現在,我得到了一切編譯 - 應用程序啓動,但沒有警告結束。沒有崩潰,沒有任何東西。即使Xamarin也沒有顯示任何崩潰跡象。你們能幫我嗎?我什麼都沒有嘗試,並且我所有的想法......;) 再次感謝!Xamarin - 地理位置不工作......但爲什麼

protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

      SetContentView(Resource.Layout.Main); 

      //Initialize buttons: 

      Button StartButton = FindViewById<Button>(Resource.Id.startbutton); 
      TextView txtTestGps = FindViewById<TextView>(Resource.Id.GpsTest); 

      ShowGpsCoordinates(StartButton, txtTestGps); 
     } 

     private void ShowGpsCoordinates(Button StartButton, TextView txtTestGps) 
     { 
      Task<double> xy = GiveGpsLocation(); 
      double xyOut = xy.Result; 

      StartButton.Click += (sender, e) => 
      { 
       txtTestGps.Text = xyOut.ToString(); 
      }; 
     } 

     private async Task<double> GiveGpsLocation() 
     { 
      double DoubleWithCoordinates = 0.0; 

      var locator = CrossGeolocator.Current; 
      locator.DesiredAccuracy = 50; 

      var position = await locator.GetPositionAsync(10000); 

      // Console.WriteLine("Position Status: {0}", position.Timestamp); 
      // Console.WriteLine("Position Latitude: {0}", position.Latitude); 
      // Console.WriteLine("Position Longitude: {0}", position.Longitude); 

      DoubleWithCoordinates = position.Latitude; 

      return DoubleWithCoordinates; 
     } 

    } 
+0

什麼平臺,你運行這個嗎?如果它是Android,它可能是一個權限問題。 – Screech129

+0

是的,它是Android ...我爲gps添加了兩個權限neccissary .... – user7285912

+0

您是否閱讀過這裏的所有註釋:https://github.com/jamesmontemagno/GeolocatorPlugin#android – Jason

回答

0

既然你不等待到異步方法的所有調用,例外情況可能會得到嚥下,隱藏了崩潰的原因。

也許嘗試以下,看看你能得到,告訴你一些例外:

protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

      SetContentView(Resource.Layout.Main); 

      //Initialize buttons: 

      Button StartButton = FindViewById<Button>(Resource.Id.startbutton); 
      TextView txtTestGps = FindViewById<TextView>(Resource.Id.GpsTest); 

      Task.Run(async() => { 
       await ShowGpsCoordinates(StartButton, txtTestGps); 
      } 
     } 

     private async Task ShowGpsCoordinates(Button StartButton, TextView txtTestGps) 
     { 
      double xyOut = await GiveGpsLocation(); 


      StartButton.Click += (sender, e) => 
      { 
       txtTestGps.Text = xyOut.ToString(); 
      }; 
     } 

     private async Task<double> GiveGpsLocation() 
     { 
      double DoubleWithCoordinates = 0.0; 

      var locator = CrossGeolocator.Current; 
      locator.DesiredAccuracy = 50; 

      var position = await locator.GetPositionAsync(10000); 

      // Console.WriteLine("Position Status: {0}", position.Timestamp); 
      // Console.WriteLine("Position Latitude: {0}", position.Latitude); 
      // Console.WriteLine("Position Longitude: {0}", position.Longitude); 

      DoubleWithCoordinates = position.Latitude; 

      return DoubleWithCoordinates; 
     } 

    } 
相關問題