LocationManager.getLastKnownLocation возвращает значение NULL - PullRequest
0 голосов
/ 28 апреля 2020

Этот метод работал нормально до вчерашнего дня, когда он начал давать значение Null.

Ниже приведен калькулятор расстояния, который находит расстояние между моим текущим местоположением ячейки и адресом пользователя. Аргумент User фактически является адресом пользователя. "местоположение" является нулевым. Я даже попробовал OnLocationChange, но это не помогло.

float[] result;
    private float dist(String User){
        locationManager=(LocationManager) getSystemService(Context.LOCATION_SERVICE);// last known locations
        Criteria criteria= new Criteria();
        provider = locationManager.getBestProvider(criteria,false);
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(this,
                Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED
                ||ContextCompat.checkSelfPermission(this,Manifest.permission.SEND_SMS)!= PackageManager.PERMISSION_GRANTED) {

            ActivityCompat.requestPermissions(Rider_Activity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION,
                    Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.SEND_SMS}, 0);
        } else {
            Location location = locationManager.getLastKnownLocation(provider);
//            Log.e("Current",location.toString());
            LatLng user = geoLocate(User);
//            Log.e("user",user.toString());
            result = new float[1];
            Location.distanceBetween(location.getLatitude(),location.getLongitude(), user.latitude, user.longitude, result);
        }
//        Log.e("dist",String.valueOf(result[0]/1000));
        return result[0]/1000;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...