Example usage for android.location Criteria setAccuracy

List of usage examples for android.location Criteria setAccuracy

Introduction

In this page you can find the example usage for android.location Criteria setAccuracy.

Prototype

public void setAccuracy(int accuracy) 

Source Link

Document

Indicates the desired accuracy for latitude and longitude.

Usage

From source file:org.akvo.flow.ui.fragment.MapFragment.java

/**
 * Center the map in the given record's coordinates. If no record is provided,
 * the user's location will be used.//from  w  w w .ja v  a 2  s . c o  m
 * @param record
 */
private void centerMap(SurveyedLocale record) {
    if (mMap == null) {
        return; // Not ready yet
    }

    LatLng position = null;

    if (record != null && record.getLatitude() != null && record.getLongitude() != null) {
        // Center the map in the data point
        position = new LatLng(record.getLatitude(), record.getLongitude());
    } else {
        // When multiple points are shown, center the map in user's location
        LocationManager manager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        String provider = manager.getBestProvider(criteria, true);
        if (provider != null) {
            Location location = manager.getLastKnownLocation(provider);
            if (location != null) {
                position = new LatLng(location.getLatitude(), location.getLongitude());
            }
        }
    }

    if (position != null) {
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(position, 10));
    }
}

From source file:org.navitproject.navit.NavitVehicle.java

/**
 * @brief Creates a new {@code NavitVehicle}
 *
 * @param context/*from   ww w.  j av a2  s . c  o  m*/
 * @param pcbid The address of the position callback function called when a location update is received
 * @param scbid The address of the status callback function called when a status update is received
 * @param fcbid The address of the fix callback function called when a
 * {@code android.location.GPS_FIX_CHANGE} is received, indicating a change in GPS fix status
 */
NavitVehicle(Context context, int pcbid, int scbid, int fcbid) {
    if (ContextCompat.checkSelfPermission(context,
            android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        // Permission is not granted
        return;
    }
    this.context = context;
    sLocationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
    preciseLocationListener = new NavitLocationListener();
    preciseLocationListener.precise = true;
    fastLocationListener = new NavitLocationListener();

    /* Use 2 LocationProviders, one precise (usually GPS), and one
       not so precise, but possible faster. The fast provider is
       disabled when the precise provider gets its first fix. */

    // Selection criteria for the precise provider
    Criteria highCriteria = new Criteria();
    highCriteria.setAccuracy(Criteria.ACCURACY_FINE);
    highCriteria.setAltitudeRequired(true);
    highCriteria.setBearingRequired(true);
    highCriteria.setCostAllowed(true);
    highCriteria.setPowerRequirement(Criteria.POWER_HIGH);

    // Selection criteria for the fast provider
    Criteria lowCriteria = new Criteria();
    lowCriteria.setAccuracy(Criteria.ACCURACY_COARSE);
    lowCriteria.setAltitudeRequired(false);
    lowCriteria.setBearingRequired(false);
    lowCriteria.setCostAllowed(true);
    lowCriteria.setPowerRequirement(Criteria.POWER_HIGH);

    Log.e("NavitVehicle", "Providers " + sLocationManager.getAllProviders());

    preciseProvider = sLocationManager.getBestProvider(highCriteria, false);
    Log.e("NavitVehicle", "Precise Provider " + preciseProvider);
    fastProvider = sLocationManager.getBestProvider(lowCriteria, false);
    Log.e("NavitVehicle", "Fast Provider " + fastProvider);
    vehicle_pcbid = pcbid;
    vehicle_scbid = scbid;
    vehicle_fcbid = fcbid;

    context.registerReceiver(preciseLocationListener, new IntentFilter(GPS_FIX_CHANGE));
    sLocationManager.requestLocationUpdates(preciseProvider, 0, 0, preciseLocationListener);
    sLocationManager.addGpsStatusListener(preciseLocationListener);

    /*
     * Since Android criteria have no way to specify "fast fix", lowCriteria may return the same
     * provider as highCriteria, even if others are available. In this case, do not register two
     * listeners for the same provider but pick the fast provider manually. (Usually there will
     * only be two providers in total, which makes the choice easy.)
     */
    if (fastProvider == null || preciseProvider.compareTo(fastProvider) == 0) {
        List<String> fastProviderList = sLocationManager.getProviders(lowCriteria, false);
        fastProvider = null;
        for (String fastCandidate : fastProviderList) {
            if (preciseProvider.compareTo(fastCandidate) != 0) {
                fastProvider = fastCandidate;
                break;
            }
        }
    }
    if (fastProvider != null) {
        sLocationManager.requestLocationUpdates(fastProvider, 0, 0, fastLocationListener);
    }
}

From source file:com.findcab.driver.activity.Signup.java

private void initView() {
    context = this;
    back = (Button) findViewById(R.id.back);
    back.setOnClickListener(this);
    start = (Button) findViewById(R.id.start);
    start.setOnClickListener(this);

    edit_name = (EditText) findViewById(R.id.name);
    edit_mobile = (EditText) findViewById(R.id.mobile);
    edit_password = (EditText) findViewById(R.id.password);

    checkBox = (CheckBox) findViewById(R.id.checkBox);

    item = (TextView) findViewById(R.id.item);
    item.setOnClickListener(this);

    if (initGPS()) {

        LocationManager locationManager;
        String serviceName = Context.LOCATION_SERVICE;
        locationManager = (LocationManager) this.getSystemService(serviceName);
        // ?/*from   www. j a v a  2 s  .  c om*/
        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);
        location = locationManager.getLastKnownLocation(provider);
        if (location != null) {
            lat = location.getLatitude();
            lng = location.getLongitude();
        }
    }
}

From source file:cubes.compass.service.WeatherActivity.java

private void getWeatherFromCurrentLocation() {
    // system's LocationManager
    LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

    // medium accuracy for weather, good for 100 - 500 meters
    Criteria locationCriteria = new Criteria();
    locationCriteria.setAccuracy(Criteria.ACCURACY_MEDIUM);

    String provider = locationManager.getBestProvider(locationCriteria, true);

    // single location update
    if (ActivityCompat.checkSelfPermission(this,
            Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
            && ActivityCompat.checkSelfPermission(this,
                    Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        // TODO: Consider calling
        //    ActivityCompat#requestPermissions
        // here to request the missing permissions, and then overriding
        //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
        //                                          int[] grantResults)
        // to handle the case where the user grants the permission. See the documentation
        // for ActivityCompat#requestPermissions for more details.
        return;// w ww .  ja  va  2 s  .c o  m
    }
    locationManager.requestSingleUpdate(provider, this, null);
}

From source file:com.rareventure.android.GpsReader.java

public void turnOn() {
    synchronized (lock) {
        //          Log.d(GpsTrailerService.TAG,"Turning on gps");
        if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
            GTG.alert(GTGEvent.ERROR_GPS_DISABLED);
            return;
        }/*from  w  ww .  ja v  a2  s .  co  m*/
        if (ActivityCompat.checkSelfPermission(this.ctx,
                Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            GTG.alert(GTGEvent.ERROR_GPS_NO_PERMISSION);
            //            Log.d(GpsTrailerService.TAG,"Failed no permission");
            return;
        }

        if (gpsOn) {
            //            Log.d(GpsTrailerService.TAG,"Gps already on");
            return; //already on
        }
        gpsOn = true;

        //         Log.d(GpsTrailerService.TAG,"Really turning on");
        Criteria criteria = new Criteria();
        criteria.setSpeedRequired(false);
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(false);

        String providerName = lm.getBestProvider(criteria, true);
        lm.requestLocationUpdates(providerName, prefs.gpsRecurringTimeMs, 0, locationListener, looper);
    }
}

From source file:ch.hesso.master.sweetcity.activity.map.MapActivity.java

public void showCurrentPosition() {
    if (map == null)
        return;/*from www.j a  v a2  s.co m*/

    // Enabling MyLocation Layer of Google Map
    map.setMyLocationEnabled(true);

    Criteria lightCriteria = new Criteria();
    lightCriteria.setAccuracy(Criteria.ACCURACY_COARSE);
    lightCriteria.setAltitudeRequired(false);
    lightCriteria.setBearingRequired(false);
    lightCriteria.setCostAllowed(false);
    lightCriteria.setHorizontalAccuracy(Criteria.ACCURACY_MEDIUM);
    lightCriteria.setPowerRequirement(Criteria.NO_REQUIREMENT);
    lightCriteria.setSpeedAccuracy(Criteria.NO_REQUIREMENT);
    lightCriteria.setSpeedRequired(false);

    listener = new MapLocationListener(map);

    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    locationManager.requestSingleUpdate(lightCriteria, listener, null);
    locationProvider = locationManager.getBestProvider(new Criteria(), true);
    Location location = locationManager.getLastKnownLocation(locationProvider);

    if (location != null) {
        listener.onLocationChanged(location);
        map.animateCamera(CameraUpdateFactory.zoomTo(15));
    }
}

From source file:org.wso2.edgeanalyticsservice.LocationSystemService.java

/** Initialize the location system Service and set the minimal update distance and time  */
public void startLocationService(Context context) {
    mContext = context;/*ww  w .j av  a2 s  . co  m*/
    mLocationManager = (LocationManager) mContext.getSystemService(mContext.LOCATION_SERVICE);
    Criteria locationCritera = new Criteria();
    locationCritera.setAccuracy(Criteria.ACCURACY_COARSE);
    locationCritera.setAltitudeRequired(false);
    locationCritera.setBearingRequired(false);
    locationCritera.setCostAllowed(true);
    locationCritera.setPowerRequirement(Criteria.NO_REQUIREMENT);

    String providerName = mLocationManager.getBestProvider(locationCritera, true);

    if (providerName != null && mLocationManager.isProviderEnabled(providerName)) {
        if (ActivityCompat.checkSelfPermission(mContext,
                Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                && ActivityCompat.checkSelfPermission(mContext,
                        Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public
            // void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            Log.e("Location", "No permission");
            return;
        }
        mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MINIMUM_TIME_BETWEEN_UPDATES,
                (float) MINIMUM_DISTANCE_FOR_UPDATES, new MyLocationListner(), Looper.getMainLooper());
        mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MINIMUM_TIME_BETWEEN_UPDATES,
                (float) MINIMUM_DISTANCE_FOR_UPDATES, new MyLocationListner(), Looper.getMainLooper());
        mlocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        //        mTaskManager.sendLocationData(new double[]{mlocation.getLatitude(), mlocation.getLongitude()});
        mLocationListner = new MyLocationListner();
        synchronized (this) {
            started = true;
        }
    } else {
        // Provider not enabled, prompt user to enable it
        Toast.makeText(mContext, "Please turn on GPS", Toast.LENGTH_LONG).show();
        Intent myIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(myIntent);
    }
}

From source file:de.avanux.android.livetracker2.LocationTracker.java

public String getGpsProvider() {
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);//from   w ww.  j a v  a 2 s.  c  om
    criteria.setCostAllowed(false);
    // criteria.setPowerRequirement(Criteria.POWER_LOW);
    criteria.setSpeedRequired(true);

    return getLocationManager().getBestProvider(criteria, true);
}

From source file:ch.hesso.master.sweetcity.activity.report.ReportActivity.java

void updateCurrentLocation() {
    if (this.locationListener == null)
        this.locationListener = new LocationListener() {
            @Override/*  ww w .ja  va 2 s.  c o m*/
            public void onLocationChanged(Location location) {
                ReportActivity.this.currentLocation = location;
            }

            @Override
            public void onProviderDisabled(String provider) {
            }

            @Override
            public void onProviderEnabled(String provider) {
            }

            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {
            }
        };

    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_COARSE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);
    criteria.setCostAllowed(false);
    criteria.setHorizontalAccuracy(Criteria.ACCURACY_MEDIUM);
    criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);
    criteria.setSpeedAccuracy(Criteria.NO_REQUIREMENT);
    criteria.setSpeedRequired(false);

    LocationManager locationManager = (LocationManager) ReportActivity.this.getSystemService(LOCATION_SERVICE);
    locationManager.requestSingleUpdate(criteria, this.locationListener, null);
}

From source file:net.digitalphantom.app.weatherapp.WeatherActivity.java

private void getWeatherFromCurrentLocation() {
    if (ActivityCompat.checkSelfPermission(this,
            Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.ACCESS_FINE_LOCATION, },
                GET_WEATHER_FROM_CURRENT_LOCATION);

        return;//from   w ww  .jav  a  2  s.  c  o  m
    }

    // system's LocationManager
    final LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    boolean isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    boolean isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

    Criteria locationCriteria = new Criteria();

    if (isNetworkEnabled) {
        locationCriteria.setAccuracy(Criteria.ACCURACY_COARSE);
    } else if (isGPSEnabled) {
        locationCriteria.setAccuracy(Criteria.ACCURACY_FINE);
    }

    locationManager.requestSingleUpdate(locationCriteria, this, null);
}