【问题标题】:Xamarin Forms Labs Geolocation sampleXamarin Forms Labs 地理定位示例
【发布时间】:2015-02-26 22:14:05
【问题描述】:

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

【问题讨论】:

  • 安卓应用有ACCESS_COARSE_LOCATION权限?
  • 谢谢,是的,我在清单中有这个设置
  • 嗨帕特里克,为了未来的用户/观众,如果下面的答案解决了您的问题,请将其标记为解决方案。

标签: android xamarin xamarin.forms


【解决方案1】:

(这有点晚了,但是提交以防有人通过搜索找到它)

仔细检查您的平台权限。

对于 Android: 您必须在您的 Android 项目中申请以下权限

  1. ACCESS_COARSE_LOCATION
  2. ACCESS_FINE_LOCATION

对于 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);

【讨论】:

猜你喜欢
  • 2014-09-20
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 2023-03-22
  • 1970-01-01
  • 2018-06-24
相关资源
最近更新 更多