[英]Get location updates using location callbacks
我正在嘗試使用FusedLocationProviderClient
獲取用戶位置,如下所示:
fusedLocationProviderClient.requestLocationUpdates(mLocationRequest, locationCallback, null);
我在此位置通話中獲得位置更新
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
for (Location location : locationResult.getLocations()) {
// list of locations
}
}
};
我讀到了locationResult.getLocations()
檢索從舊到新排序的位置對象列表,我不明白我現在想要的只是獲取用戶位置。
有什么幫助嗎?
您可以使用locationResult.getLastLocation()
獲取最新的可用位置。
從文檔中: LocationResult.getLastLocation()
public Location getLastLocation ()
Returns the most recent location
available in this result, or null if no
locations are available.
您可以使用LocationManager
代替FusedLocationProviderClient
。 可能會更容易。
LocationManager manager = (LocationManager) this.getSystemService(LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.d("Current location", location.toString());
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
};
//Checks permission
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
當用戶移動時,這將為您提供位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.