GPS定位启用后如何立即获取位置

Niv*_*war 5 android android-maps android-location

我正在实现一个模块,需要用户的纬度经度来离线打卡考勤。

我已经按照LINK上的示例实现了GPSTracker类

但是启用 GPS 定位后,我正在打卡出勤,那么此类将返回空位置对象。但3060秒后它会正确返回位置对象。

我还在清单中添加了COARSE权限FINE,并获得了运行时权限。

所以我需要帮助如何在启用 GPS 定位后立即获取纬度和经度。

Dev*_*ven 0

尝试用这个:

FusedLocationProviderClient mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(getActivity());

private void getDeviceLocation() {   
            try {
                Task<Location> locationResult = mFusedLocationProviderClient.getLastLocation();
                locationResult.addOnCompleteListener(getActivity(), new OnCompleteListener<Location>() {
                    @Override
                    public void onComplete(@NonNull Task<Location> task) {
                        if (task.isSuccessful()) {                 
                            Location mLastKnownLocation = task.getResult();
                             Log.i(TAG, "==lat "+mLastKnownLocation.getLatitude());
                             Log.i(TAG, "==log "+mLastKnownLocation.getLongitude());                      
                        } else {
                            Log.d(TAG, "Current location is null. Using defaults.");
                            Log.e(TAG, "Exception: %s", task.getException());
                        }
                    }
                });
            } catch (SecurityException e) {
                Log.e("Exception: %s", e.getMessage());
            }
     }
Run Code Online (Sandbox Code Playgroud)