Как узнать текущее местоположение, когда срабатывает оповещение о близости - PullRequest
0 голосов
/ 10 октября 2011

Я использую следующий код для определения текущего местоположения при срабатывании оповещения о близости:

Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location == null) {
    location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
    if (location == null) {
        // We'll just write an empty location
        location = new Location("");
    }
}

Когда я смотрю на места, которые я получаю, я получаю входящие оповещения в местах, где я не долженвозьми их.У меня сложилось впечатление, что, поскольку оповещения о близости внутренне опрашивают провайдера GPS и сети, обновляя, таким образом, LastKnownLocation, этот код даст текущее местоположение.Это предположение верно?

1 Ответ

1 голос
/ 10 октября 2011

Я использую следующий код для определения текущего местоположения и его работы тоже.Проверьте код диска ...

        LocationManager locationManager;
        String context = Context.LOCATION_SERVICE;
        locationManager = (LocationManager) getSystemService(context);
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_LOW);
        String provider = locationManager.getBestProvider(criteria, true);

        if (null != provider) 
        {
            Location location = locationManager.getLastKnownLocation(provider);
            if (null != location) {
                GpsFound=true;
                currentLat = location.getLatitude();
                currentLon = location.getLongitude();
                System.out.println("Current Lat,Long :"+currentLat+" ,"+currentLon);
            }
            else
            {
                //GpsFound=false;
                gpsMsg="Current Location can not be resolved!";
            }

        } 
        else 
        {
            gpsMsg="Provider is not available!";
            //GpsFound=false;
        }
...