我下载了Xamarin Forms Labs的源代码,并且正在尝试为android项目运行geolocator示例。单击“获取位置”按钮时,返回的位置消息为"已取消"。我尝试按照以下步骤在VS中创建一个新的xamarin表单项目:file>新项目> Xamarin PCL。当我在该项目中安装xamarin表单实验室并使用它时,我收到相同的消息。但是,我可以使用Windows Phone示例。我不确定安装Xamarin的Android模拟器是否可以连接到我的机器上的网络。这可以解释为什么它无法获得位置
答案 0 :(得分:5)
(这有点晚了,但只是提交以防通过搜索找到此内容)
仔细检查您的平台权限。
适用于Android: 您必须在Android项目中请求以下权限
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
对于iOS:
在iOS 8中,您现在必须在位置管理器上调用RequestWhenInUseAuthorization
或RequestAlwaysAuthorization
。
此外,您需要将简洁的NSLocationWhenInUseUsageDescription
或NSLocationAlwaysUsageDescription
添加到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);