Xamarin Forms Labs Geolocation样本

时间:2014-12-30 18:33:35

标签: android xamarin xamarin.forms

我下载了Xamarin Forms Labs的源代码,并且正在尝试为android项目运行geolocator示例。单击“获取位置”按钮时,返回的位置消息为"已取消"。我尝试按照以下步骤在VS中创建一个新的xamarin表单项目:file>新项目> Xamarin PCL。当我在该项目中安装xamarin表单实验室并使用它时,我收到相同的消息。但是,我可以使用Windows Phone示例。我不确定安装Xamarin的Android模拟器是否可以连接到我的机器上的网络。这可以解释为什么它无法获得位置

1 个答案:

答案 0 :(得分:5)

(这有点晚了,但只是提交以防通过搜索找到此内容)

仔细检查您的平台权限。

适用于Android: 您必须在Android项目中请求以下权限

  1. ACCESS_COARSE_LOCATION
  2. ACCESS_FINE_LOCATION
  3. 对于iOS: 在iOS 8中,您现在必须在位置管理器上调用RequestWhenInUseAuthorizationRequestAlwaysAuthorization

    此外,您需要将简洁的NSLocationWhenInUseUsageDescriptionNSLocationAlwaysUsageDescription添加到Info.plist

    对于Windows Phone: 您必须设置ID_CAP_LOCATION权限。

    Xamarin表格 如果您正在开发Xamarin Forms应用程序,可以尝试使用Geolocator(Xamarin.Plugin)示例,只需记住添加权限:)

    样品:

    var locator = CrossGeolocator.Current;
    locator.DesiredAccuracy = 50;
    
    var position = await locator.GetPositionAsync (timeout: 10000);
    
    Console.WriteLine ("Position Status: {0}", position.Timestamp);
    Console.WriteLine ("Position Latitude: {0}", position.Latitude);
    Console.WriteLine ("Position Longitude: {0}", position.Longitude);