如何在android中以编程方式在每一秒获取当前的经纬度?

pgpifvop  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(368)

我想通过管理员的帮助使app-like-tracker能够在特定的时间跟踪特定的用户,所以我要求在每一秒跟踪long和lat用户并传递到其他地方。

n9vozmp4

n9vozmp41#

以电池性能为例,每秒询问gps位置可能会非常昂贵。另外,是否需要经常更新位置?我会考虑是否真的有必要。在某些设备上可能存在一些硬件限制,不允许以如此小的间隔进行位置请求。
除此之外,使用计时器在选定的时间间隔上运行函数。

ogsagwnx

ogsagwnx2#

您可以编写一个递归方法,通过网络调用发送用户位置,并在任何时候成功回调时保持调用本身,这一行都是这样;

private void sendLocation(final String long, final String lat){
    repository.getLocationApiService().sendLocation(long, lat)
            .enqueue(new Callback<SendLocationResponse>() {
                @Override
                public void onResponse(Call<SendLocationResponse> 
                    call,Response<SendLocationResponse> response) {
                    if(response.isSuccessful()){
                        sendLocation(long, lat);
                    }
                    else{
                        //Handle error
                    }
                }

                @Override
                public void onFailure(Call<SendLocationResponse> call,**strong text**Throwable  t) {
                    //Handle networking errors
                }
            });
}

这样下一个位置马上就发过去了,希望这有帮助,也是利用改装中的方法。

相关问题