- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发监视 CLBeaconRegion 并在用户进入/退出区域时向用户显示本地通知的应用程序。一切正常,但在测试时我发现如果我进入区域,收到 locationManager:didEnterRegion: 的调用,然后关闭发射信标,我只在大约 2 分钟内收到 locationManager:didExitRegion: 的调用。
谁能帮助避免这种延迟?
传输设备是装有 iOS 8.3 的 iPhone 4s。接收设备为iOS 7.1.2的iPhone 4s
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
[self.locationManager requestAlwaysAuthorization];
}
[self.locationManager startMonitoringForRegion:beaconRegion];
...
}
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
NSLog(@"%@", NSStringFromSelector(_cmd));
}
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
NSLog(@"%@", NSStringFromSelector(_cmd));
}
谢谢!
最佳答案
当应用程序在 4S 上处于后台时(或者如果它在前台且不在范围内),它最多可能需要 15 分钟才能获得 didEnterRegion
回调。 didExitRegion
回调可能需要 15 分 3 秒。
为什么?因为 4S 仅在后台每 15 分钟扫描一次信标以节省电量。只有在 3 秒内没有看到信标后,您才会收到 didExitRegion
事件。
详情请看这里:http://developer.radiusnetworks.com/2014/03/12/ios7-1-background-detection-times.html
编辑:您可以在启用监控的同时启用测距,从而使您的设备在前台更快地检测到。只需在调用 startMonitoringBeaconsInRegion:
startRangingBeaconsInRegion:
较新的 iOS 设备 iPhone 5+ 具有硬件辅助功能,可以在不测距时在后台和前台持续扫描,但此辅助功能的位置有限。只有前 30 个注册区域可以访问此快速背景检测,而且,这在 4S 上不可用。
关于ios - 位置管理器 :didExitRegion: a big delay of firing when transmitting is stopped,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29916022/
A 有效 JSON 语法是这样的: { "username": "admin", "password": "123" } 但是,如果我想传输一组“用户”(给出示例)而不是单个“用户”怎么办?
我正在使用 System.Net.HttpWebRequest类来实现一个简单的 HTTP 下载器,可以暂停、取消甚至在取消后恢复(使用 HTTP Range 请求 header )。 很明显,Htt
我昨天将我的三星 Galaxy S4 从最新的 KitKat 升级到 Lollipop (5.0.1),我使用了几个月的红外遥控应用程序停止工作。 由于我使用的是 KitKat ConsumerIrM
我正在尝试使用 iOS BLE 设备作为 BLE 外围设备,它也在后台做广告。 我已经想出如何在后台做广告并让另一台寻找特定蓝牙 UUDID 的设备检测到它。 不幸的是,当应用程序处于后台时,不会传输
我正在尝试编写一个小型 Android 应用程序,该应用程序利用 Android 4.4 KitKat 中添加的新红外 API。 →Documentation 我遇到了麻烦,因为我的应用程序因无响应而
当我在 Camel 上下文组件中向其端点发送消息时,我必须等待带有确认的响应消息。如果在超时时间内没有收到响应,则会向camel路由抛出异常。 我尝试通过以下方式实现它:当原始消息发送到端点时,我使用
通过传输层传输用户凭证 (Active Directory) 的最佳/最简单方法是什么。 我有两个系统 A 和 B,它们与第 3 方消息层 C 相连。 有没有什么方法(在 .NET 中更可取)以某种方
我的问题比较难描述,所以我会着重说明情况。所以假设我有 2 个不同的实体,它们可能在不同的机器上运行。我们将第一个称为Manager,将第二个称为Generator。管理器是唯一可以通过用户调用的。
我正在尝试根据请求从服务器端发送文件到客户端。发送的文件是加密的,客户端需要解密它。加密过程工作正常,但在解密时我需要拥有使用序列化的 DerIOBuffer 对象等。我该怎么办..请帮忙 服务器:
我关注了this教程并设法让它在 10% 到 15% 的时间内正常工作。 这是我为客户端提供的 Main 方法,其中发生了异常: static void Main(string[] args)
我正在使用 boost 1.53 和序列化通过 TCP/IP 传输 520 个 float 的数组。我放了一个调试代码打印输出来查看要发送的数据量:大约 5 K。这里对我来说没问题,但这个值在某种程度
我正在开发一个 Android 项目,在该项目中我从我们的服务器加载图像,同时加载有关餐馆的其他信息。问题是,加载需要花费大量时间,每当我尝试再次加载信息或将手机从横向移动到纵向或反之时,我都会遇到内
我正在为一个 Mac 应用程序开发 UI,尝试了很多改进 UI,但我无法让它像预期的那样流畅,:D。我想构建一个流畅的 UI,例如 Transmit 应用。 我还在所有 View 上启用了核心动画,但
有人尝试过新的 Firebase 崩溃报告吗? 创建崩溃后我遇到了以下错误 Firebase Crash Reporting: Failed to transmit crash: Error Doma
“AAaarg”!请帮忙!!! 这是我正在尝试做的... 我有一个 Django 站点 site1,它需要访问另一个服务 site2 的 API。然而,为了做到这一点,site1 需要使用它自己的登录
给定一个由边容量为 c_e 的节点组成的二叉树网络。叶节点处有数据,每个节点的数据大小为s_v。 L_e 是边 e 下面的子树中所有叶子的集合。我们的目标是找到叶子的子集 S,使得传输到根 r 的数据
我正在 BeagleBoneBlack 上开发应用程序。嵌入式 linux 对我来说很新 =/ 我面临的问题是,我想实现一个RS485通讯,我使用 SeriaLib-Library 编写了一段 C++
我正在开发监视 CLBeaconRegion 并在用户进入/退出区域时向用户显示本地通知的应用程序。一切正常,但在测试时我发现如果我进入区域,收到 locationManager:didEnterRe
我有一个 ubuntu aws ec2。我可以使用 os X 终端传输文件 sudo scp -i /my-key.pem /path/to/local/file username@hostname
对于 ACR122U,我知道您可以使用直接传输命令将直接消息传输到 NFC Controller (PN532):0xff 0x00 0x00 0x00...。 我看ACR1251U的手册说:读卡器的
我是一名优秀的程序员,十分优秀!