对当前位置使用 xamarin currentLocation example
我使用上面的链接获取当前位置的纬度和经度。
在升级到 IOS 8 之前的 IOS 7 中,它在模拟器和设备上都显示了我当前的位置纬度和经度。(在模拟器中获取当前位置的经度和纬度对我来说看起来很奇怪)。
升级到 iOS 8 后运行相同的代码
在模拟器中:(始终打开 wifi 无 sim 卡位置服务应用程序。)
Result:
latitude = 37.785834.
longitude = -122.406517.
在设备 iPhone5c 上(始终打开 wifi 无 sim 卡位置服务应用程序。)
Result:
latitude = 37.785834.
longitude = -122.406517.
(但我期望我当前位置的经纬度)
升级后它不会询问,该应用程序喜欢使用您的当前位置 GPS。带有 YES、NO 选项的警告消息。
如何获取我当前位置的经纬度?
最佳答案
从 iOS 8.0 开始,您需要明确请求权限。这样做的步骤:
- 更新您的 Info.plist 文件。插入一个新 key :NSLocationAlwaysUsageDescription 或 NSLocationWhenInUseUsageDescription key ,并编写将在您的应用请求权限时显示的自定义消息。
您的 plist 文件中必须有这些键中的任何一个,否则将不会显示权限请求!如果您不想在警报 View 中显示自定义解释文本,请将键的值字符串留空,但您仍然必须在 Info.plist 文件中存在该键!
在开始跟踪之前,请检查您使用的是 iOS8,然后从 CLLocationManager 实例发送 RequestAlwaysAuthorization 或 RequestWhenInUseAuthorization。示例:
var locationManager = new CLLocationManager(); if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) { locationManager.RequestAlwaysAuthorization(); }
在这种情况下,请使用 Info.plist 文件中的 NSLocationAlwaysUsageDescription 键。请注意,Xamarin Studio 当前不会从下拉列表中自动为您提供此 key ,您必须在此处手动输入/复制粘贴此 key 。
关于ios - 当前位置纬度和经度在 iOS 7 到 IOS 8 中的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953661/