Android - Fused Location:如何获得强制新位置
Android - Fused Location: How to get force fresh location
我有一个应用允许用户在特定区域使用,这意味着我不需要跟踪用户,但我需要确保接收到的位置是最新的(即使它需要等待)。
最好的方法是什么?目前使用:
getLastLocation()
但它有时可以得到以前的位置,这是可以理解的。
如果满足位置条件,您可以register a location listener并继续代码:
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
if (locationResult == null) {
return;
}
for (Location location : locationResult.getLocations()) {
//if(this is the location) jump to the code which makes the app usable
}
//stay unusable
};
};
获取位置可能需要一些时间。如果强制你的意思是保持 ui 线程直到 precise-enough 位置可用,那么强制获取位置是一个糟糕但可行的想法。
我有一个应用允许用户在特定区域使用,这意味着我不需要跟踪用户,但我需要确保接收到的位置是最新的(即使它需要等待)。
最好的方法是什么?目前使用:
getLastLocation()
但它有时可以得到以前的位置,这是可以理解的。
如果满足位置条件,您可以register a location listener并继续代码:
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
if (locationResult == null) {
return;
}
for (Location location : locationResult.getLocations()) {
//if(this is the location) jump to the code which makes the app usable
}
//stay unusable
};
};
获取位置可能需要一些时间。如果强制你的意思是保持 ui 线程直到 precise-enough 位置可用,那么强制获取位置是一个糟糕但可行的想法。