代码之家  ›  专栏  ›  技术社区  ›  Ali Sheikhpour

如何在FusedLocationApi连接后立即获取位置?

  •  0
  • Ali Sheikhpour  · 技术社区  · 7 年前

    我使用以下代码来获取用户使用 FusedLocationApi

    这就是我启动Api的方式:

       @Override
        public void onConnected(Bundle dataBundle) {
           LocationServices.FusedLocationApi.requestLocationUpdates(mLocationClient, mLocationRequest, this);
        }
    

    这就是我如何调用自己的函数:

    @Override
    public void onLocationChanged(Location location) {
        if (location != null) {
            CurrentLocation=String.valueOf(location.getLatitude())+"_"+String.valueOf(location.getLongitude());
            analyzeData(CurrentLocation);
        }
    }
    

    onConnected 不是在位置更改时激发。谢谢

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ramzy Hassan    7 年前

    onLocationChange 仅当位置更改时调用。 所以如果你需要尽快找到位置 onConnect 联机位置更改 被解雇了

    private FusedLocationProviderClient mFusedLocationClient;
    
    mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
    mFusedLocationClient.getLastLocation()
            .addOnSuccessListener(this, new OnSuccessListener<Location>() {
                @Override
                public void onSuccess(Location location) {
                    // Got last known location. In some rare situations this can be null.
                    if (location != null) {
                        // Logic to handle location object
                    }
                }
            });
    
    推荐文章