当前位置: 首页 > 知识库问答 >
问题:

如何增加Android geofence进入/退出通知的一致性?

车胤运
2023-03-14

我正在使用内置的geofence API(play services),结果好坏参半。看起来在设置了地理围栏之后,即使在GPS处于开启状态,并且位置是最新的(LocationClient已连接,在后台运行),进入/退出的通知也是非常不一致的我开始监视(轮询)debug文本字段中的位置更改和距离,并且看到,即使基于设备注册的位置和地理围栏的位置,我在技术上处于地理围栏的内部/外部,通知有时会被触发,有时不会被触发。有什么办法让这更容易预测吗?我几乎想放弃这个api,并基于设备位置轮询来实现我自己的(电池耗尽)地理围栏。

共有1个答案

伊铭
2023-03-14

几点建议:

>

  • 请确保您使用的是广播接收器,而不是服务来接收转换,否则,如果应用程序被关闭/关闭,您将无法/可能无法获得转换。正如这里所讨论的:Android Geofence最终停止获得过渡意图

    请确保在设备重新启动后重新创建地理围栏,最好使用引导广播接收器。正如这里所讨论的:在设备重新启动后,android系统中的地理围栏是否仍然处于活动状态

    >

  • 创建并连接LocationClient。

    在connect-callback中,添加/删除地理围栏

    在geofence-result回调中,断开LocationClient的连接。

    如果你做了这些事情,我打赌你的经验会改善。

    希望这有帮助!

  •  类似资料:
    • 问题内容: 我正在使用ProcessBuilder启动子进程,并且如果父进程确实需要退出子进程。在正常情况下,我的代码可以正确阻止孩子。但是,如果我导致操作系统杀死父进程,则子进程将继续运行。 有什么方法可以将子进程“绑定”到父进程,以便在父进程被杀死时退出? 问题答案: 子进程与其父进程之间没有联系。他们可能彼此知道进程ID,但是它们之间没有硬连接。您在谈论孤立过程。这是操作系统级别的问题。意味

    • 如何增加Vaadin通知/警告时间?我用的是Vaadin Valo主题。从Vaadin的书籍通知页面没有任何帮助。

    • 我正在尝试创建一个机器人,当有人加入特定的语音频道(例如VC1)时,它会向特定的文本频道(例如vc-text)发送消息。 这是机器人。js代码: 一些ID: 文本通道ID是712677731023716452-发送通知到(我知道我需要添加通道消息编码) 当我加入VC1时,我会收到控制台消息“Left VC1”,当我离开/加入另一个VC1时,我也会收到相同的控制台消息。 我从https://www.

    • 退款后会发送通知。 官方文档: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_16&index=9 // SDK实例化,传入公共配置 $sdk = new \Yurun\PaySDK\Weixin\SDK($params); class RefundNotify extends \Yurun\PaySDK\Weixin\No

    • 问题内容: 现在,我正在使用日志记录Java项目中每个方法的入口点和出口点。调试时,这对我非常有用。 在每种方法的开头我都有这段代码,在结尾处有类似的代码: 其中“ methodName”是方法的名称(硬编码)。 所以我想知道是否有一种方法可以自动执行此操作,而不必在每个方法中都包含此代码。 问题答案: 我建议使用面向方面的编程。 例如,使用AspectJ编译器(可以将其集成到Eclipse,Em

    • 问题内容: 我“d成的运行Django的服务器,我不能简单地和出来。 是否有其他摆脱困境的方法? 目前,我手动关闭本地PC上的选项卡,然后再重新打开,但这变得很烦人。 问题答案: 或 。请参阅屏幕手册#分离。