如何以编程方式每秒获取 android 中的当前经度和纬度?
How to fetch current longitude and latitude in android programaticaly at every secon?
我想通过管理员的帮助使应用程序像跟踪器一样可以在特定时间在他的许可下跟踪特定用户,所以我需要每秒跟踪用户长和纬度并传递到其他地方。
例如,就电池性能而言,每秒询问 GPS 位置可能非常昂贵。另外,是否需要经常更新位置?我会考虑是否真的有必要。并且某些设备可能存在一些硬件限制,不允许以如此小的间隔请求位置。
除此之外,使用定时器 运行 您的函数在选定的时间间隔内。
您可以编写一个递归方法,该方法进行网络调用以发送用户位置,并在您获得成功的回调时继续调用自身,这行;
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
}
});
}
这种方式下一个位置是在上一个位置通过后立即发送的,希望对您有所帮助,方法中也使用了改造。
我想通过管理员的帮助使应用程序像跟踪器一样可以在特定时间在他的许可下跟踪特定用户,所以我需要每秒跟踪用户长和纬度并传递到其他地方。
例如,就电池性能而言,每秒询问 GPS 位置可能非常昂贵。另外,是否需要经常更新位置?我会考虑是否真的有必要。并且某些设备可能存在一些硬件限制,不允许以如此小的间隔请求位置。
除此之外,使用定时器 运行 您的函数在选定的时间间隔内。
您可以编写一个递归方法,该方法进行网络调用以发送用户位置,并在您获得成功的回调时继续调用自身,这行;
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
}
});
}
这种方式下一个位置是在上一个位置通过后立即发送的,希望对您有所帮助,方法中也使用了改造。