问题标签 [clregion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
955 浏览

android - 使用 Xamarin.Forms 在 iOS 和 Android 上通过 GPS 事件自动启动应用程序

在工作中,我们创建了一个应用程序,该应用程序将跟踪用户上下班的路线,并且我们内置了自动记录功能,但它的行为方式并不像我们想要的那样。在不活动一两天后,操作系统似乎关闭了这个自动系统(手机在此期间甚至没有移动,它们基本上仅用于测试)。

在 iOS 上,我们使用 CLRegions 在用户当前位置周围创建几个区域,在用户的确切位置创建了 5 个具有不同半径的区域,并在用户周围 10 米的距离处创建了 12 个区域(这些半径为 80 米)。还指示 CLLocationManager 对象开始监视重大更改和访问(尽管它们甚至还没有被触发一次)。

在 Android 上,我们通过 LocationServices API 使用地理围栏,这里我们只有用户当前位置周围的 5 个增量半径。如果用户在 Android 上关闭应用程序或重新启动手机,它将启动后台服务,该服务将重新初始化地理围栏并开始监控它们。

当我通过在外面走一点来测试它们时,这两个系统都工作得很好,但似乎在一两天不活动(也就是周末)之后它们停止工作。我已经调试了很长时间了,尽管它变得更好了,但它仍然不完美。

无论应用程序关闭多长时间,当地理围栏/区域被触发时,是否有一个可靠的系统在后台自动启动应用程序?我知道这两个操作系统处理后台任务的方式非常不同,但我不太确定这种方式对 GPS 使用的长期限制。

我们正在制作的应用程序是用 Xamarin Forms 编写的,但这些系统是在其本机项目中编写的(仍然使用 C#,但可以完全访问整个本机平台)

0 投票
0 回答
274 浏览

iphone - CLLocationManager:没有调用 didEnterRegion 和 didExitRegionAlert 方法

我正在使用CLRegion进行地理围栏。我监视了为notifyOnExitnotifyOnEntry设置的CLCircularRegion。这是我的代码:

在监视区域之前,我尝试删除所有在它之前移动的区域。然后我用区域监控。但它会直接调用 带有错误的monitoringDidFailForRegion委托方法:操作无法完成。(kCLErrorDomain 错误 4.)错误。它不会调用委托方法。

谁能帮我我的代码有什么错误?谢谢,

0 投票
1 回答
226 浏览

swift - iOS 应用的 RegionMonitoring 限制

我正在开发一个应用程序,我需要将设备的位置更新为大致准确的服务器,我可以承受 500 的差异 | 700米的数据。

我能够在后台和前台模式下成功实现它。我主要关心的是应用程序终止时的位置更新,因为我确实在应用程序终止时实现了重大的位置更改,但它以随机方式通知设备位置更改并且非常不准确,或者有时我收到的位置更新存在巨大延迟位置更新在 2-3 公里内,有时甚至不会在 7 公里的距离内更新。

因此,我的一位团队成员建议我在应用程序终止时实施区域监控,现在我已经实施了区域监控,但它也无法正常工作,我在某处读到最多只能从应用程序监控 20 个区域。

这是我尝试过的以下示例代码:

即使应用程序终止,我如何更新位置?在我上面的代码中有什么问题吗?

0 投票
1 回答
234 浏览

iphone - 应用程序处于后台时未调用 CLLocationManager didDetermineState 方法

我正在为我的一个应用程序使用地理围栏。但我有一个问题。当应用程序处于后台模式时,未调用我的应用程序- (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region 。

我在设置中检查后台应用程序刷新标志是否打开

下面是我的代码:

CLLocationManager设置正确。我对此进行了研究,但没有为我的问题得到适当的解决方案。任何人都可以帮助我吗?

谢谢

0 投票
0 回答
638 浏览

ios - 创建用于监控的自定义 CLRegions

我正在构建一个使用地理围栏的应用程序,但我意识到 CLRegion 有很多限制,例如:

  • 该位置授权状态必须为 .authorizedAlways 才能使区域监控正常工作。

  • 只能监控圆形区域

这限制了可以使用区域监控应用的功能。然而,在做了一些研究之后,我发现有办法通过创建一个自定义的 CLRegion 类来改变这种行为。

老实说,我不知道该怎么做或从哪里开始。有没有人对这样的自定义 CLRegion 类如何允许自定义地理围栏有任何建议?

appcoda 上有一个教程简要地谈到了这一点,但根本没有深入,你可以在这里找到它:

https://www.appcoda.com/geo-targeting-ios/

他们建议从以下协议开始:

从这些可以为 CLRegions 创建自定义功能,例如监控多边形等。

应该如何开始实施自定义区域?

谢谢!

0 投票
1 回答
520 浏览

ios - iOS 10 中的地理围栏

iOS 10 引入UNLocationNotificationTrigger了基于定义的触发本地通知的CLRegion. 在 iOS 10 之前,我使用CLLocationManager'sstartMonitoringForRegion进行地理围栏并根据用户位置发送本地通知。

谁能告诉我这两种方法之间的区别是什么?

0 投票
1 回答
190 浏览

ios - 如果在特定时间内未达到,有没有办法将 CLRegion 设置为过期?

我正在尝试使用CLRegion标记为用户选择的最终目的地,以便应用程序在用户到达目的地后提示用户。

问题是,如果用户绘制了最终目的地但实际上并没有到达该地区。该地区将永远存在!(直到有一天,他们终于到达时会突然收到消息提示。)

我似乎在互联网上找不到任何关于到期的信息?有人可以启发我吗?

0 投票
1 回答
290 浏览

ios - 即使信标关闭,也调用了 didRangeBeacons

我正在使用可以监控附近信标的 swift 3.0 实现 IOS 应用程序。我有一个与 didRangeBeacon 函数有关的问题,详细重现以下步骤:

1-应用程序已进入信标区域

2-信标关闭

3- 在接下来的 10 秒内,didRangeBeacon 函数仍然被调用并且响应仍然有一个信标对象。

所以我无法识别信标立即关闭。如何识别信标立即关闭?

0 投票
2 回答
906 浏览

ios - 信标区域监控延迟且随机无法正常工作。(Android 工作正常)

我已经开发了同样在 android 中开发的应用程序。

我在 iOS 中实现了信标区域监控,如下所示。

以上是启动监控的代码。

以下是我为位置管理器实例的初始化编写的代码。

上面的代码将在应用程序启动时初始化位置管理器。

我想收到有关区域进入和退出事件的通知。

我的问题是我的 android 应用程序可以从很远的距离检测到信标进入,而 iOS 应用程序无法检测到从远处进入或退出的区域。

我不知道为什么会出现这种差异?

我观察到的是信标区域监控有时会将进出通知延迟 2 到 3 分钟。

如果 android 可以在特定范围内检测到信标区域,那么为什么 iOS 应用程序无法检测到这一点?(两个应用程序都可以开始检测应用程序的范围形式存在显着差异)。

任何建议或建议都会有所帮助。

谢谢。

0 投票
1 回答
240 浏览

swift - 降低 didEnterRegion 的阈值

我目前正在开发一个应用程序,我希望我的应用程序在接近它时检测到后台模式的信标(立即)。根据我读过的文章,didEnterRegion 无法完成,我应该在后台模式下运行时使用测距(位置更新)。有没有直接降低 didEnterRegion 阈值的解决方案?还是我应该使用其他方法?如果是这种情况,它是否像 didEnterRegion 一样工作,但 RSSI 范围有限?当我的手机进入该区域并且它被锁定并且屏幕关闭时,它是否有效?