如何使用推送通知等更改位置间隔
Posted
技术标签:
【中文标题】如何使用推送通知等更改位置间隔【英文标题】:How to change location intervals with something like PUSH notifications 【发布时间】:2018-02-06 22:35:51 【问题描述】:即使应用程序处于后台或被杀死,我的应用程序也能够跟踪用户,并将电流经纬度发送到服务器。 我正在为此使用带有 PendingIntent 的 FusedLocationApi。我的问题是,如果我的应用没有在前台运行,我该如何更改 LocationRequest 的间隔?
我想做一些事情,比如捕捉 firebase 提供的 PUSH 通知,然后更改此间隔,但这是不可能的。
如果我将间隔(setInterval、setFastestInterval 和 setPriority)设置为最高频率和 HIGH_ACCURACY 并且只在服务器中捕获一些此请求,然后当我想获得更多频率时,捕获所有位置请求?
是否可以避免让客户端(用户智能手机)像等待通知的服务器一样工作,比如 firebase?
编辑: 我正在尝试它似乎工作,但我仍然有沟通的问题。 我创建了一个服务和 2 种不同类型的 API FusedLocationServices,其中 1 种正在工作,另一种只是等待来自服务器的信号开始发送位置......这正是我想知道如何以一种好的方式去做.如何连续收听服务器?有没有类似firebase的onMessageReceived的方式??
【问题讨论】:
您想设置两个不同的时间间隔以在应用程序运行或终止时获取位置更新? 我想要的是该应用程序以一定的间隔和准确性为我提供位置,但在某些时候,我想更改为最佳位置和更频繁的间隔。就像谷歌 android 设备管理器一样。 您可以先删除位置更新再重新注册 但我使用的是 IntentService,我将它作为 PendingIntent 传递给谷歌服务。我理解您的建议,但是如何在不打开应用程序的情况下从服务器捕获更改位置设置的请求? 【参考方案1】:好的,我可以像我说的那样处理这个问题,创建 2 个不同的 LocationRequest,一个在第一次使用必要的配置打开应用程序时一直运行,另一个在我实现 firebase 的 onMessageReceived 时创建。 我必须发送一个 POST 数据消息(为此我使用 POSTMAN)以确保调用 onMessageReceived 就可以了!
【讨论】:
以上是关于如何使用推送通知等更改位置间隔的主要内容,如果未能解决你的问题,请参考以下文章