iOS10以上app需要定位服务,请先在infoplist中添加位置权限
[Privacy - Location When In Use Usage Description]string 此app需要访问位置
[Privacy - Location Always Usage Description]string 此app需要访问位置
1.系统级开关状态,及跳转设置
[CLLocationManager locationServicesEnabled]
此方法是获取到用户是否打开了系统的位置服务,但是因为现在苹果的安全机制,我们无法执行代码跳转到系统的位置开关界面,所以,如果位置服务不可用的情况下,我们不需要做任何操作,只需要操作位置权限问题即可。
注意:一定要区分位置服务和位置权限,位置服务是系统设置中位置的总开关,位置权限,只是代表是否可以获取到某一个应用的位置
2.应用级开关状态,及跳转设置
此方法是获取到此app的位置权限状态,位置权限为枚举:
CLAuthorizationStatus locationStatus = [CLLocationManager authorizationStatus]
[kCLAuthorizationStatusNotDetermined]
用户没有决定是否使用定位服务。
[kCLAuthorizationStatusRestricted]
定位服务授权状态是受限制的。可能是由于活动限制定位服务,用户不能改变。这个状态可能不是用户拒绝的定位服务
[kCLAuthorizationStatusDenied]
定位服务授权状态已经被用户明确禁止,或者在设置里的定位服务中