2017-03-22 25 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; 
     } 

    } 
相关问题