在后台请求 iPhone 位置?

2023-11-23

简单的问题...我有一个应用程序,以 30 秒的间隔记录用户位置(使用 NSTimer),它可以完美地工作,直到应用程序变为“非活动状态”并且 NStimer 停止。因此,我正在寻找保持定位间隔(30 秒)的选项,同时仍然能够记录相当准确的位置数据(精度在 100m 以内)。

  • 选项_001,暴力破解:使用 UIBackgroundModes = "location" 让 CLLocationManager、startUpdatingLocation 始终运行。不推荐,会耗尽电池。规律性根据要求,准确度约。 10-65m。可能是唯一现实的选择。

  • 选项_002,SLC:我可以使用“重大位置变化”,但位置更新的频率相当差(更不用说准确性了)。如果应用程序在蜂窝塔数量有限的农村或荒野地区运行,则尤其如此。规律性未知,准确度约为。 500m

  • 选项_003,混合:我可以在后台使用显着位置变化 (SLC) 作为“显着”移动的指示器,然后根据 kCLLocationAccuracyBest 请求 GPS 位置。这可行,但 SLC 事件不会以接近 30 秒的间隔到达(特别是在步行时)。规律性未知,准确度约为。 10-50m。

  • Option_004,还有别的吗?任何想法将不胜感激。


NOTE: 我以为我可以正常工作,因为当您在 iPhone(通过 USB 连接)上按 [LOCK] 时,会调用 applicationWillResignActive 但 NSTimers 不会停止。如果您在未连接的 iPhone 上尝试相同的操作(即手机正常使用时),则 NSTimers 在调用 applicationWillResignActive 后几乎立即停止。


首先,不要使用计时器来更新用户位置。从另一端接近它: 当收到新位置时,检查自上次“记录”以来的时间间隔,并决定是否要记录新位置。

此外,这将解决您的“非活动”状态问题。只需启用后台定位服务即可。 Info.plist > 所需的后台模式 > 应用程序注册位置更新

在后台时,当收到新位置时,您的应用程序将进入“后台活动”状态,以便有足够的时间进行 API 调用并推送新位置。

简而言之,您需要设计这个应用程序以使其能够与新的背景模式很好地配合。

注意:此解决方案不适用于 iOS3.x

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在后台请求 iPhone 位置? 的相关文章

  • 滑动删除不起作用

    滑动删除功能在我的表格视图中不起作用 我已经在导航栏中实现了 commitEditingStyle 委托和编辑按钮 因此 当用户单击编辑按钮时 删除和添加按钮会相应显示 但是 在滑动时 删除按钮不会出现 并且似乎它无法将滑动识别为对 set
  • NSDictionary 上的 NSPredicate

    我试图根据字母表在表格视图中创建部分 并在这些部分下按字母顺序对我的条目进行排序 我已经收集了 bandArrayIndex 中 bandArray 每个条目的第一个字母 现在我尝试使用 NSPredicate 来计算每个字母有多少个 我正
  • iphone - 自动释放,没有池 - 只是泄漏

    我的主代码中有这一行 self performSelectorInBackground selector animateMe withObject nil 这是 animateMe void animateMe UIView animate
  • 最小的 iOS 蓝牙管理器示例

    我一直在构建一个最小的示例 用于使用 iOS 5 0 中的 BluetoothManager 私有框架来检测附近的蓝牙设备 使用此问题中找到的答案 寻找触手可及的通用蓝牙设备 https stackoverflow com question
  • 如何在 NSMutableArray 中实现“按值分组”?

    我正在使用 NSMutableArray 我想像在 SQL 中那样按日期获取值group by log date logMuArray log currenttime 4 30pm log date 11 12 2011 log durat
  • 如何知道用户何时更改设置包

    我让用户在 iPhone 的设置区域中更改他们的设置 在下一次网络同步期间 我想将用户更改发送到服务器 但前提是做出改变 但是我如何知道用户何时在设置区域中进行了更改 如果可以的话 我想避免选择总是发送信息 无论是否更改 或者首先从服务器获
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • iPhone 的电子书框架

    我有一本书想作为 iPhone 应用程序发布 有谁知道我可以使用免费 或便宜 的框架来实现这一目标 换句话说 我想为我的书创建一个独立的 XCODE 项目 其中包含 iPhone 用户将本书作为独立应用程序阅读所需的所有代码 我见过 O R
  • 如何知道我的应用程序使用了多少 iCloud 空间?

    有没有办法查看我的应用程序正在备份到 iCloud 的内容以及它消耗了多少内存 Settings gt iCloud gt Storage Backup gt Manage Storage将显示正在备份的总计内容 iOS 会备份位于应用程序
  • 持久化 UINavigationItem 的 rightBarButtonItem 属性

    这可能是一个愚蠢的问题 但是有可能保持正确的吗 UIBarButtonItem跨由一个管理的多个视图UINavigationController 我的一系列观点通常具有相同的权利UIBarButtonItem 但是当我将新视图推送到我的UI
  • 导入 RNCryptor 后架构 armv7 的未定义符号

    我导入了 RNCryptor 可以在这里找到 https github com rnapier RNCryptor https github com rnapier RNCryptor进入我的应用程序 但是 我在日志中收到了三个错误 Und
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用来禁用弱密码

    我正在尝试禁用一些密码 弱 例如单个 DES 单个 DES 40 位等 我尝试过使用这段代码在 Cocoa 中使用 CFSocket CFStream 时如何设置 SSL 密码 https stackoverflow com questio
  • 忽略触摸事件,让其下面的视图处理触摸?

    我有一个用户可以触摸的可拖动视图 但它的某些矩形将没有图像 alpha 0 当用户单击透明区域时 我能够在没有 alpha 信息的情况下构造透明区域 我希望透明区域下方的视图 同一类 来检测触摸 我的策略是当用户触摸透明区域时让视图忽略触摸
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • 如何在 iOS 8 中关闭两个 UIViewController?

    我正在使用 Objective C 开发 iPhone 应用程序 由于我需要一次关闭两个 UIViewController 所以我使用下面的代码 self presentingViewController presentingViewCon
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

    我想在 UIScrollview 如照片应用程序 上显示许多图像 作为缩略图 所有图像将从服务器下载 据我所知 有几种选择 1 通过创建 UIImageviews 然后将它们添加为主滚动视图上的子视图 2 通过子类化一个UIView类 然后

随机推荐

  • 如何在 rollupjs 中禁用 Tree Shaking

    我试图使用 RollUp js 将多个 javascript 文件捆绑在一起 但是当我这样做时 未使用的类会被删除 这个过程称为树抖动 我想禁用它 我已经发现this但似乎没有任何效果 rollup config js let config
  • 为什么 Xcode 3 显示多个编译器错误或每个实际发生的警告

    当我在 Xcode 中构建时 任何错误或警告都会被重复 因此 在 IDE 中 我在状态栏中的图标附近得到两倍的数字 并且在编辑器中显示黄色或红色气泡的地方 在警告 或错误 的行下方有两条警告行 或错误行 发生 其他人也有这个问题 或者知道如
  • 如何将 SVG 元素设置到页面的图标?

    我的页面上有一个 SVG 元素 我想用它作为页面的图标 我如何在 JavaScript 中执行此操作 这样做是令人震惊地令人费解 您可以看到我的解决方案的实际效果here 方法如下所述 通过 ID 或其他方式获取 HTML 元素 留给读者作
  • 如何在 RMarkdown 的代码块中使用 JavaScript?

    灵感来自这个答案 我想在 R 中使用这个数据框 input lt data frame text c a b c page number c 3 5 6 从文本中创建一个列表 链接到不同的页码 该解决方案描述了如何在 Markdown 中使
  • 如何使用 Jest 获取测试文件上的 window.location.pathname?

    我有反应应用程序是由 create react app 使用笑话和酶进行测试制作的 那么我怎样才能得到的值window location pathname在我的测试文件中 这是我的规格 import React from react imp
  • 无法在远程目录中找到或无法访问 Vagrant box - 不兼容的curl版本

    我刚刚下载了 Vagrant 并进行了设置并安装了 virtual box 我只是无法启动我的项目 vagrant up 我有一个流浪文件等等 我能做些什么 vagrant up Bringing machine default up wi
  • 自定义对象到 JSON 然后返回到自定义对象?

    我见过与此非常相似的问题 但我无法确定它们是否得到了明确的回答 也许我有点笨拙 抱歉 我想要拥有自己的对象的便利性 和清晰度 称其为CardboardBox 它不包含代码 只包含数据 我想将其写入数据库并稍后读回 但显然 它是一种类型Obj
  • 图例中的两种线条样式

    我有一个具有两种线条样式 实线和虚线 的图 我希望它们用于相同的图例条目 下面的代码生成典型的图例 包含两个条目 import matplotlib pyplot as plt import numpy as np xy np linspa
  • Java HashMap 如何处理具有相同哈希码的不同对象?

    根据我的理解我认为 两个对象具有相同的哈希码是完全合法的 如果两个对象相等 使用 equals 方法 则它们具有相同的哈希码 如果两个对象不相等 那么它们不能具有相同的哈希码 我对么 现在 如果正确的话 我有以下问题 这HashMap内部使
  • 如何尽可能高效地处理大量并发磁盘写入请求

    假设以下方法被 net 4 应用程序中的不同线程调用数千次 处理这种情况的最佳方法是什么 了解磁盘是这里的瓶颈 但我希望 WriteFile 方法能够快速返回 数据可达几MB 我们是在谈论线程池 TPL 之类的吗 public void W
  • 如何覆盖在 Spark 中读取 DataFrame 的 parquet 文件

    这是我面临的问题的缩影 我遇到了错误 让我尝试在这里重现它 我正在保存一个DataFrame as a parquet 但是当我重新加载时DataFrame from parquet文件并再次保存为parquet 我收到错误 valuesC
  • lb 指令到底有什么作用?

    我即将进行考试 练习题之一是 假使 假设 t0包含值0x12121212 and t1包含 地址0x1000000 假设内存数据 从地址开始0x1000000 is 88 77 66 55 会有什么价值 t0执行以下代码后 lb t0 0
  • 为什么切片对象在Python中不可散列

    为什么 python 中的切片对象不可散列 gt gt gt s slice 0 10 gt gt gt hash s TypeError Traceback most recent call last
  • Bash 关联字典不起作用(声明:-A:无效选项)

    我已经遵循了每个 bash 字典示例 但没有一个起作用 我现在有了 CONFIG bin bash instance map dev project dev instance map stage project staging declar
  • 针对 switch 语句中的枚举进行编程,这是您的方法吗?

    看一下代码片段 这是我在针对枚举进行编码时通常所做的事情 我有一个带有 InvalidOperationException 的默认转义 我不使用 ArgumentException 或其派生类之一 因为编码是针对私有实例字段而不是传入参数
  • 有没有办法从 Firestore 中仅选择某些字段?

    我正在解决一个函数的性能问题 需要 15 秒才能响应 这会向 firebase 请求所有文档 ErrorID 0 问题是有很多文档 而且它们是非常大的对象 我只需要两个领域 Order and Amount 对于每个文档 有什么方法可以只请
  • 不使用 eval 的嵌套 shell 变量

    我可以摆脱吗eval这里 我正在尝试设置 current database由用户输入确定的适当变量 国家和操作 User input country es action sales Possible variables for curren
  • 如何安装 32 位和 64 位版本的 COM DLL 并“自动选择”?

    我们有一个 DLL COM 服务器 可以在 32 位和 64 位版本中正常编译 但 DLL 对 32 位版本和 64 位版本使用相同的 CLSID 和 AppID 这是可以的还是必须改变 我问这个问题是因为显然在 64 位机器上 我们无法同
  • 如何在 C# 中使用 Java 风格的 throws 关键字?

    在Java中 throws关键字允许方法声明它不会自行处理异常 而是将其抛出给调用方法 C 中有类似的关键字 属性吗 如果没有等效的 如何才能达到相同 或相似 的效果 操作人员正在询问C 相当于 Java 的throws clause 不是
  • 在后台请求 iPhone 位置?

    简单的问题 我有一个应用程序 以 30 秒的间隔记录用户位置 使用 NSTimer 它可以完美地工作 直到应用程序变为 非活动状态 并且 NStimer 停止 因此 我正在寻找保持定位间隔 30 秒 的选项 同时仍然能够记录相当准确的位置数