`
zjjzmw1
  • 浏览: 1364812 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

iOS8的定位,始终开启还是应用运行时开启

    博客分类:
  • iOS
阅读更多

原文  http://blog.csdn.net/nextstudio/article/details/40050095

 

http://www.tuicool.com/articles/VN3632

 

 

1、修改info

新增Key: NSLocationAlwaysUsageDescription 和 NSLocationWhenInUseUsageDescription ,这两个Key的值将分别用于描述应用程序始终使用和使用期间使用定位的说明,这些说明将显示在用户设置中。

info新增键值对如下 :

应用程序说明参见微信:

2、CLLocationManager初始化

iOS8CLLocationManager新增实例方法 requestWhenInUseAuthorization和 requestAlwaysAuthorization,需要在初始化时根据需要调用。

 

if([CLLocationManager locationServicesEnabled]){
self.locationManage = [[[CLLocationManager alloc] init] autorelease];
self.locationManage.delegate = self;
self.locationManage.distanceFilter = 200;
self.locationManage.desiredAccuracy = kCLLocationAccuracyBestForNavigation;//kCLLocationAccuracyBest;
if (SYSTEM_VERSION >= 8.0) {
    //使用期间
    [self.locationManage requestWhenInUseAuthorization];
    //始终
    //or [self.locationManage requestAlwaysAuthorization]
}
    }

3、代理

新增下面的代理方法:

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
switch (status) {
case kCLAuthorizationStatusNotDetermined:
if ([self.locationManage respondsToSelector:@selector(requestAlwaysAuthorization)])
{
[self.locationManage requestWhenInUseAuthorization];
}
break;
default:
break;
}

}



定位:iOS9 有蓝条。。退出后台,不定位的话,过会就自动去掉蓝条。定位也没用了。,如果一直定位,蓝条不取消。。

Info 里面 :  Required background modes              App registers   for location updates      //想要后台定位,必须要

NSLocationWhenInUseUsageDescription               ------只有这个会出现蓝条         [_locationManager stopUpdatingLocation];//蓝条就会消失。

 

if([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0){

        [[[CyclingManager ShareInstance] locationManager] setAllowsBackgroundLocationUpdates:YES];//todo-张明炜

    }

        _locationManager = [[CLLocationManager alloc] init];

        _locationManager.pausesLocationUpdatesAutomatically = NO;   // 该值默认为YES,设置为NO,保持定位更新

        if(IS_IOS8) {

//            [_locationManager requestAlwaysAuthorization];//NSLocationAlwaysUsageDescription  保持一致 

            [_locationManager requestWhenInUseAuthorization];//NSLocationWhenInUseUsageDescription  保持一致。

        }

        _locationManager.delegate = self;

        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;

        

//        [_locationManager startMonitoringSignificantLocationChanges];

 

——————————————————————没用蓝条----

NSLocationAlwaysUsageDescription              这样没用蓝条,,    [_locationManagerstopUpdatingLocation];//就可以取消右上角的定位符号。,,

 

项目中遇到了  stopUpdatingLocation iOS8 的蓝条依然存在。。。一种可能是 还有其他的地方没用stop。。。。   另一中情况是  引入了其他的定位框架,例如mapBox  等。

 

上面的代码  测试过了。没用问题。

 

分享到:
评论

相关推荐

    IOS 系统的后台持续定位

    在iOS系统中,后台持续定位是一项关键功能,尤其对于那些依赖实时地理位置信息的应用,如导航、运动追踪等。为了理解这一功能,我们首先需要探讨iOS的App生命周期和苹果的能源效率策略。 iOS的设计理念强调用户体验...

    ios8后台持续定位

    1. **工作原理**:iOS 8后台定位服务允许应用在后台运行时持续获取用户的位置信息,即使应用被最小化或者手机屏幕关闭。系统会根据应用的设置和用户的行为智能调整定位服务的频率,以平衡定位精度与电池消耗。 2. *...

    ios 地图定位 demo

    本Demo,"ios 地图定位 demo",旨在帮助开发者了解如何在iOS应用中集成地图定位服务,以实现基本的地图定位功能。下面将详细阐述相关知识点。 首先,iOS中的地图定位服务主要依赖于Core Location框架。Core ...

    iOS如何保持程序在后台长时间运行

    当定位服务开启时,系统会不断刷新后台时间,使得应用能够在后台保持运行。但要注意,频繁的定位可能会消耗大量电量。 3. **后台下载**:允许应用在后台下载或上传数据,但这同样受到时间限制。 4. **无声音乐播放...

    IOS 稳定无限后台运行

    当应用请求始终开启的位置更新时,系统会允许该应用在后台运行。但需要注意的是,这可能会增加电池消耗,因此开发人员需要优化定位服务的使用,如采用低功耗模式或仅在必要时获取位置。 3. **低功耗模式下的后台...

    Xcode模拟器下载地址(iOS 8 - iOS 12)

    在Xcode中集成了一个强大的iOS模拟器,允许开发者在Mac电脑上运行并测试iOS应用程序,无需实际设备。 #### 二、iOS模拟器的重要性 iOS模拟器是iOS应用开发过程中不可或缺的工具之一,其主要作用在于: 1. **应用...

    IOS应用源码之后台运行(Multitasking)以及本地通知(Local Notifications)Demo .zip

    在iOS开发中,后台运行(Multitasking)和本地通知(Local Notifications)是两个非常重要的概念,它们极大地提升了用户体验和应用的功能性。本Demo旨在帮助开发者深入理解和实践这两个特性。 一、后台运行...

    IOS百度地图的实时绘出运行轨迹

    5. **开启定位服务**:使用`BMKLocationService`类开启定位服务,设置定位参数,如定位精度、更新频率等。同时,设置定位回调,当位置信息更新时,会调用指定的Block。 6. **绘制轨迹**:在定位回调中,获取到新的...

    马上着手开发iOS应用程序_Apple

    ### iOS应用开发官方指南 #### 引言 随着移动互联网技术的发展,iOS平台因其卓越的用户体验和庞大的用户基数,成为了众多开发者的选择。本篇将基于官方提供的iOS开发教程与步骤,详细阐述iOS应用开发的核心概念、...

    iOS定位 获取当前位置

    在你的项目中,打开`Podfile`,添加`CoreLocation`库,然后运行`pod install`来安装。 ```ruby target 'YourProjectName' do use_frameworks! pod 'CoreLocation' end ``` 接下来,我们需要导入`CoreLocation`...

    iOS开启监督模式文件.zip

    1. **强制应用安装**:管理员可以远程安装和更新应用,确保设备上始终运行的是最新和最安全的软件。 2. **设备配置**:可以设置设备的许多方面,如壁纸、屏幕使用时间限制、密码策略、Home屏幕布局等。 3. **应用和...

    ios应用源码之颜色拾取工具 20181210

    - 当颜色拾取工具被打开和关闭时,需要正确处理应用程序的状态变化,以及释放不必要的内存。 10. 测试与调试: - 使用Xcode的模拟器和真机设备进行测试,确保在不同iOS版本和设备上运行正常。 - 调试工具如...

    iOS 后台运行的方法

    1. **挂起模式(Suspended)**:这是应用的默认状态,系统会保存应用的状态并暂停所有进程,直到用户再次打开应用。在挂起状态下,应用不会消耗任何CPU资源。 2. **后台任务(Background Tasks)**:当应用需要在...

    ios14.7真机调试包

    7. **调试**:在设备上运行应用时,Xcode的Debug Area会显示各种调试信息,包括日志输出、断点和变量值。你可以使用Xcode的调试工具,如Step Over、Step In和Step Out来控制程序执行,以及查看内存和性能。 8. **...

    ios 真机调试包 15.2

    总之,“ios 真机调试包 15.2”是iOS开发者在测试新系统版本应用时的重要工具,通过它,开发者能够确保应用在iOS 15.2环境下稳定运行,提供高质量的用户体验。对于那些依赖最新系统特性的应用,真机调试更是必不可少...

    iOS自动化脚本:用于构建iOS应用并部署到TestFlight或本地设备

    打开终端,导航到包含该脚本的目录。 给脚本执行权限:chmod +x iOSAppBuildAndDeploy.sh。 运行脚本:./iOSAppBuildAndDeploy.sh。 注意事项: 确保你的Mac上已经安装了Xcode和相应的命令行工具。 根据你的需求,...

    IOS提醒用户重新授权打开定位功能

    例如,当应用需要访问用户的位置信息但未得到授权时,可以通过弹出一个警示对话框,提示用户进入"设置 > 隐私 > 定位服务 > 应用名"来开启权限。这种交互方式不仅减少了用户的操作步骤,还能使用户更直观地了解应用...

    iOSAPP分析无用代码

    3. 在Xcode中打开Instruments,选择Time Profiler模板,运行应用并分析性能数据,找出运行时无用的代码段。 4. 检查编译器警告,特别是关于`dead_code`的警告,并决定是否删除相关的代码。 在分析和优化过程中,...

    iOS12.2真机调试包

    在iOS开发过程中,真机调试是一项至关重要的环节,它允许开发者在实际设备上测试应用程序,以确保软件在各种硬件配置和系统版本上运行无误。iOS12.2真机调试包是专为iOS开发人员设计的,用于在运行iOS12.2系统的设备...

    IOS11.1调试支持文件

    这些文件包括了模拟器的系统镜像、设备配置文件、调试工具等,它们允许开发者在Xcode中创建、运行和测试针对iOS 11.1设备的应用程序,同时提供详细的错误信息和性能数据,以帮助优化代码。 Xcode的调试功能在iOS...

Global site tag (gtag.js) - Google Analytics