[ios]iOS8 定位

参考:http://www.2cto.com/kf/201410/342392.html

http://blog.csdn.net/yongyinmg/article/details/39521523

http://blog.devzeng.com/blog/ios8-corelocation-framework.html

iOS8的定位问题,执行操作之后,不会调用到定位之后的delegate方法中,然后我查看了一下手机上对应用的定位权限界面,发现我的应用的访问用户的地理位置的权限是空的,之后查了相关信息,得到以下解决方案:

1. Appdelegate中:

//h
CLLocationManager *locationManager;

//m
    [UIApplication sharedApplication].idleTimerDisabled = TRUE;
   if([CLLocationManager locationServicesEnabled])//检查定位服务是否可用    {      if(!locationManager)      {
        locationManager = [[CLLocationManager alloc] init];
      }
      [locationManager requestAlwaysAuthorization];        //NSLocationAlwaysUsageDescription
        [locationManager requestWhenInUseAuthorization];     //NSLocationWhenInUseDescription
        locationManager.delegate = self;
      locationManager.distanceFilter = 0.5;      locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    }
    [locationManager startUpdatingLocation];
    

2. 在 info.plist里加入:

在Info.plist中加入两个缺省没有的字段

  • NSLocationAlwaysUsageDescription  允许在前台获取GPS的描述
  • NSLocationWhenInUseUsageDescription  允许在后台获取GPS的描述

这两个字段没什么特别的意思,就是自定义提示用户授权使用地理定位功能时的提示语。

Application requires IPhone environment  yes

时间: 2024-10-10 16:51:28

[ios]iOS8 定位的相关文章

iOS CLLocationManager定位,IOS8注意

今天下午动手用了IOS自带的定位,结果在网上看了很多教程,也将示例代码直接运行,但就是一直无法获取位置,代码如下: 首先导入CoreLocation.framework,然后再引入头文件#import  定义属性 ? 1 @property (nonatomic , strong)CLLocationManager *locationManager; 然后使用代理 CLLocationManagerDelegate - (void)locate{ // 判断定位操作是否被允许 if([CLLoc

ios项目开发— iOS8 定位功能API改变

iOS8 定位新增功能 一.  Core Location framework的变化主要有以下几点:         1. 在定位状态中引入Always 和WhenInUse的概念.         2. 加入Visit monitoring的特性, 这类特性特别适合旅行类别的应用,当用户到达某个指定的区域内,monitor开始作用.         3.加入室内定位技术,增加CLFloor, 在室内可以得到楼层信息. 下面针对这三种分别详细的讲一下使用方法. 二..定位的种类分为: 持续的更新

iOS8 定位补充

iOS 8定位补充 iOS 8定位需要修改2个地方 1.info.plist文件中添加NSLocationAlwaysUsageDescription:描述信息 从iOS 8开始,用户定位分两种情况 总是使用用户位置:NSLocationAlwaysUsageDescription 使用应用时定位:NSLocationWhenInUseDescription 2.在CLLocationManager中调用 - (void)requestAlwaysAuthorization - (void)re

iOS iOS8新特性-UIAlertController

iOS iOS8新特性--UIAlertController 1. iOS7及iOS7之前警告类控件有UIAlertView和UIActionSheet 1.1 UIAlertView的使用 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"这是一个UIAlertView" delegate:nil cancelButtonTitle:@"取消" oth

iOS后台定位

iOS地理定位 app正常运行时可以,按下home键后app在后台也可以,双击home键后台杀死app也可以,甚至重启机器后也可以.(iOS 10 测试代码) 1)设置一些请求参数 就像正常的CLLocationManager一样申请权限以及后台更新请求 后台更新: plist请求地理位置(需要跑始终使用) 2)与往常一样的初始化定位管理器等步骤 CLLocationManager *locationMgr = [[CLLocationManager alloc]init]; [location

iOS CLLocationManager定位

在iOS8以前的版本中,我们使用CLLocationManager定位是没有问题的,最近在iOS8系统中却无法定位了....这是一大问题啊! 1.首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.framework使用#import <CoreLocation/CoreLocation.h> @property (nonatomic, strong) CLLocationManager *locationManager; 2.初始化CLLoca

iOS 后台定位被拒注意事项

iOS 后台定位被拒的原因很简单就是没有达到苹果对后台定位的要求. 本地要求: 1.在plist文件中添加字段 "Privacy - Location Always Usage Description" ,值就填写在你的运用程序中使用后台定位的地方.如"高德地图会在搜索和导航服务中使用你的位置信息." 2.在plist文件中添加字段 "Required background modes" 数组类型添加一个值item 值的话就填 "App

iOS后台定位实现

iOS后台定位实现 (2013-01-24 16:43:12) 工作中碰到一个定位的应用场景:app需要在后台运行,实时上传用户地理位置. 苹果对iOS的规范性在提升了app的品质的同时也带来了对开发者的限制.翻阅了各种官方文档和资料,得出结论如下: 1.实现后台定位有2种方式: standard location service(调用CLLocationManager的startUpdatingLocation) significant-change location service(调用CL

IOS 开启定位功能 CLLocationManager 介绍-简单使用

iOS 中的定位功能,主要在 CoreLocation库中,需要用到位置管理器 CLLocationManager 来完成绝大多数事情. 要使用 CLLocationManager 首先需要一个对象~ 以及对它进行简单的设置,最后开启定位功能, 就开始定位了,定位成功或者失败后都会调用代理方法返回信息 1 CLLocationManager *manger; 2 3 manger = [[CLLocationManager alloc] init]; //初始化 4 5 manger.deleg