Untitled

 avatar
unknown
java
3 years ago
2.4 kB
5
Indexable
public class LocationController {

    private static LocationController _instance;
    private Double latitude, longitude;
    private Criteria mCriteria;
    private LocationListener locationListener;
    private LocationManager locationManager;


    private LocationController() {
        locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
        locationListener = new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                if (location != null) {
                    Log.d("Location Changes", location.toString());
                    latitude = location.getLatitude();
                    longitude = location.getLongitude();
                }
            }

            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {
                Log.d("Status Changed", String.valueOf(status));
            }

            @Override
            public void onProviderEnabled(String provider) {
                Log.d("Provider Enabled", provider);
            }

            @Override
            public void onProviderDisabled(String provider) {
                Log.d("Provider Disabled", provider);
            }
        };


        mCriteria = new Criteria();
        mCriteria.setAccuracy(Criteria.ACCURACY_COARSE);
        mCriteria.setPowerRequirement(Criteria.POWER_LOW);
        mCriteria.setAltitudeRequired(false);
        mCriteria.setBearingRequired(false);
        mCriteria.setSpeedRequired(false);
        mCriteria.setCostAllowed(true);
        mCriteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
        mCriteria.setVerticalAccuracy(Criteria.ACCURACY_HIGH);
    }

    public static LocationController getInstance() {
        if (_instance == null) {
            _instance = new LocationController();
        }
        return _instance;
    }

    public void getLocation(Context context) {
        locationManager.requestSingleUpdate(mCriteria, locationListener, null);
    }

    public Double getLongitude() {
        return longitude;
    }

    public Double getLatitude() {
        return latitude;
    }
    
    public LocationManager getLocationManager() {
        return locationManager;
    }
    
    public LocationListener getLocationListener() {
        return locationListener;
    }
}
Editor is loading...