簡體   English   中英

使用位置回調獲取位置更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM