/** * 设置定位参数 * * @return {@link Criteria} */ private static Criteria getCriteria() { Criteria criteria = new Criteria(); // 设置定位精确度 Criteria.ACCURACY_COARSE比较粗略,Criteria.ACCURACY_FINE则比较精细 criteria.setAccuracy(Criteria.ACCURACY_FINE); // 设置是否要求速度 criteria.setSpeedRequired(false); // 设置是否允许运营商收费 criteria.setCostAllowed(false); // 设置是否需要方位信息 criteria.setBearingRequired(false); // 设置是否需要海拔信息 criteria.setAltitudeRequired(false); // 设置对电源的需求 criteria.setPowerRequirement(Criteria.POWER_LOW); return criteria; }
public static String getLocation(Context context) { if (context == null) { return ""; } try { LocationManager locationManager = (LocationManager) context.getSystemService(HOME_RECOMMEND_PARAMETERS.LOCATION); Criteria criteria = new Criteria(); criteria.setCostAllowed(false); criteria.setAccuracy(2); String bestProvider = locationManager.getBestProvider(criteria, true); if (bestProvider != null) { Location lastKnownLocation = locationManager.getLastKnownLocation(bestProvider); if (lastKnownLocation == null) { return ""; } double latitude = lastKnownLocation.getLatitude(); g = latitude + "*" + lastKnownLocation.getLongitude(); return g; } } catch (Throwable e) { f.b("getLocation", "getLocation>>>", e); } return ""; }
public static String getLocation(Context context) { if (context == null) { return ""; } try { LocationManager locationManager = (LocationManager) context.getSystemService ("location"); Criteria criteria = new Criteria(); criteria.setCostAllowed(false); criteria.setAccuracy(2); String bestProvider = locationManager.getBestProvider(criteria, true); if (bestProvider != null) { Location lastKnownLocation = locationManager.getLastKnownLocation(bestProvider); if (lastKnownLocation == null) { return ""; } double latitude = lastKnownLocation.getLatitude(); g = latitude + "*" + lastKnownLocation.getLongitude(); return g; } } catch (Throwable e) { f.b("getLocation", "getLocation>>>", e); } return ""; }
private void requestLocation(Context context, int i) { Criteria criteria = new Criteria(); criteria.setAccuracy(i); String bestProvider = this.mLocationManager.getBestProvider(criteria, true); if (bestProvider != null) { this.mProvider = bestProvider; } Log.d(TAG, "Get location from " + this.mProvider); try { if (!TextUtils.isEmpty(this.mProvider)) { Location lastKnownLocation = this.mLocationManager.getLastKnownLocation(this .mProvider); if (lastKnownLocation != null) { this.mLocation = lastKnownLocation; } else if (this.mLocationManager.isProviderEnabled(this.mProvider) && this .mListener != null && (context instanceof Activity)) { this.mLocationManager.requestLocationUpdates((Activity) context, this .mProvider, 1, 0.0f, this.mListener); } } } catch (IllegalArgumentException e) { } }
/** * 设置定位参数 * * @return {@link Criteria} */ private static Criteria getCriteria() { Criteria criteria = new Criteria(); //设置定位精确度 Criteria.ACCURACY_COARSE比较粗略,Criteria.ACCURACY_FINE则比较精细 criteria.setAccuracy(Criteria.ACCURACY_FINE); //设置是否要求速度 criteria.setSpeedRequired(false); // 设置是否允许运营商收费 criteria.setCostAllowed(false); //设置是否需要方位信息 criteria.setBearingRequired(false); //设置是否需要海拔信息 criteria.setAltitudeRequired(false); // 设置对电源的需求 criteria.setPowerRequirement(Criteria.POWER_LOW); return criteria; }
/** * Creates a new LocationSensor component. * * @param container ignored (because this is a non-visible component) */ public LocationSensor(ComponentContainer container) { super(container.$form()); handler = new Handler(); // Set up listener form.registerForOnResume(this); form.registerForOnStop(this); // Initialize sensor properties (60 seconds; 5 meters) timeInterval = 60000; distanceInterval = 5; // Initialize location-related fields Context context = container.$context(); geocoder = new Geocoder(context); locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); locationCriteria = new Criteria(); myLocationListener = new MyLocationListener(); allProviders = new ArrayList<String>(); // Do some initialization depending on the initial enabled state Enabled(enabled); }
@Override public Location getLocation(Context context) { if(config != null && config.getBooleanProperty(SocializeConfig.SOCIALIZE_LOCATION_ENABLED, true)) { if(location == null) { if(appUtils.hasPermission(context, "android.permission.ACCESS_FINE_LOCATION")) { requestLocation(context, Criteria.ACCURACY_FINE); } else if(appUtils.hasPermission(context, "android.permission.ACCESS_COARSE_LOCATION")) { requestLocation(context, Criteria.ACCURACY_COARSE); } } else if(logger != null && logger.isDebugEnabled()) { logger.debug("LocationProvider got location"); } } return location; }
@Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); setContentView(R.layout.activity_location); tv_location = (TextView) findViewById(R.id.tv_location); LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setCostAllowed(true); criteria.setAccuracy(Criteria.ACCURACY_FINE); String bestProvider = lm.getBestProvider(criteria, true); MyLocationListener myLocationListener = new MyLocationListener(); lm.requestLocationUpdates(bestProvider, 0, 0, myLocationListener); }
private Location getLatestLocation() { // Enable MyLocation Layer of Google Map if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { Toast.makeText(getApplicationContext(), "No permission to get location information.", Toast.LENGTH_LONG).show(); return null; } // Get LocationManager object from System Service LOCATION_SERVICE LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // Create a criteria object to retrieve provider Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); // Get the name of the best provider String provider = locationManager.getBestProvider(criteria, true); // Get Current Location return locationManager.getLastKnownLocation(provider); }
@SuppressLint("MissingPermission") private void setupLocationListener() { locationListener = new LocationListener(); locationManager = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE); TIME_TO_UPDATE = Integer.parseInt(sharedPreferences.getString("sync_frequency", "60")) * 1000; Criteria criteria = new Criteria(); criteria.setAltitudeRequired(false); criteria.setBearingRequired(true); criteria.setSpeedRequired(false); criteria.setPowerRequirement(Criteria.POWER_LOW); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setCostAllowed(true); bestProvider = locationManager.getBestProvider(criteria, false); locationManager.requestLocationUpdates(bestProvider, TIME_TO_UPDATE, DISTANCE_TO_CHANGE, locationListener); }
@SuppressLint("MissingPermission") private void setupLocationChangeListener() { /* SETTING UP LOCATION CHANGE LISTENER */ locationListener = new LocationListener(); locationManager = (LocationManager) Application.getContext().getSystemService(Context.LOCATION_SERVICE); locationServiceEnabled = locationManager != null && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); Criteria criteria = new Criteria(); criteria.setAltitudeRequired(false); criteria.setBearingRequired(true); criteria.setSpeedRequired(false); criteria.setPowerRequirement(Criteria.POWER_LOW); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setCostAllowed(true); bestProvider = locationManager.getBestProvider(criteria, false); updateFrequency = Integer.parseInt(settingsSharedPreferences.getString("update_frequency", "5")) * 1000; locationManager.requestLocationUpdates(bestProvider, updateFrequency, 0, locationListener); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtLat = (TextView) findViewById(R.id.txtLat); txtLong = (TextView) findViewById(R.id.txtLong); txtSource = (TextView) findViewById(R.id.txtSource); // Initialize locationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); provider = locationManager.getBestProvider(criteria, false); Location location = locationManager.getLastKnownLocation(provider); // Initialize the location if (location != null) { txtSource.setText("Source = " + provider); onLocationChanged(location); } }
/** * Registers a test provider with the given name on the location manager. * * @param providerName * - the name of the test provider to be registered */ private void addProvider(String providerName) { try { locationManager.addTestProvider(providerName, false, // does not require network false, // does not require satellite false, // does not require cell false, // no monetary cost true, // supports altitude true, // supports bearing true, // supports speed Criteria.POWER_LOW, Criteria.ACCURACY_HIGH); } catch (IllegalArgumentException e) { // guarding from registering a test provider that is already registered } locationManager.setTestProviderEnabled(providerName, true); }
@Override public void onCreate() { super.onCreate(); //��ȡ�ֻ��ľ�γ������ //1,��ȡλ�ù����߶��� LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE); //2,�����ŵķ�ʽ��ȡ��γ������() Criteria criteria = new Criteria(); //������ criteria.setCostAllowed(true); criteria.setAccuracy(Criteria.ACCURACY_FINE);//ָ����ȡ��γ�ȵľ�ȷ�� String bestProvider = lm.getBestProvider(criteria, true); //3,��һ��ʱ����,�ƶ�һ��������ȡ��γ������ MyLocationListener myLocationListener = new MyLocationListener(); lm.requestLocationUpdates(bestProvider, 0, 0, myLocationListener); }
@Override public void onCreate() { super.onCreate(); manager = (LocationManager) getSystemService(LOCATION_SERVICE); listener = new MyListener(); //criteria 查询条件 //true 只返回可用的位置提供者 Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE);//获取精确的位置 criteria.setCostAllowed(true);//允许产生开销 String name = manager.getBestProvider(criteria, true); System.out.println("最好的位置提供者:" + name); 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; } manager.requestLocationUpdates(name, 0, 0, listener); }
/** * Translates a number representing desired accuracy of Geolocation system from set [0, 10, 100, 1000]. * 0: most aggressive, most accurate, worst battery drain * 1000: least aggressive, least accurate, best for battery. */ private Integer translateDesiredAccuracy(Integer accuracy) { switch (accuracy) { case 1000: accuracy = Criteria.ACCURACY_LOW; break; case 100: accuracy = Criteria.ACCURACY_MEDIUM; break; case 10: accuracy = Criteria.ACCURACY_HIGH; break; case 0: accuracy = Criteria.ACCURACY_HIGH; break; default: accuracy = Criteria.ACCURACY_MEDIUM; } return accuracy; }
@Override public void onCreate() { super.onCreate(); // locate locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // check permission if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } // get best provider Criteria criteria = new Criteria(); criteria.setCostAllowed(true); criteria.setAccuracy(Criteria.ACCURACY_FINE); String bestProvider = locationManager.getBestProvider(criteria, true); System.out.println("best provider:" + bestProvider); // start listening listener = new MyLocationListener(); locationManager.requestLocationUpdates(bestProvider, 0, 0, listener); }
private Float getDistanceToUser(User u) { LocationManager locationManager = (LocationManager) getActivity().getSystemService(LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_MEDIUM); criteria.setPowerRequirement(Criteria.POWER_MEDIUM); String locationProvider = locationManager.getBestProvider(criteria, false); Boolean hasLocationPermission = this.hasLocationPermission(); if (hasLocationPermission && locationProvider != null) { Location myLocation = locationManager.getLastKnownLocation(locationProvider); Location userLocation = new Location(""); if (u.location.getValid()) { userLocation.setLatitude(u.location.getLatitude()); userLocation.setLongitude(u.location.getLongitude()); } else { return null; } if (myLocation != null) { return myLocation.distanceTo(userLocation); } else { return null; } } else { return null; } }
private LatLng myCurrentLocation(){ Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); Location loc = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria, false)); if (loc != null) { return new LatLng(loc.getLatitude(), loc.getLongitude()); } else { // try with coarse accuracy criteria.setAccuracy(Criteria.ACCURACY_FINE); loc = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria, false)); if (loc == null) { return new LatLng(39.952451,-75.163664); // city hall by default } } return null; }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_COARSE); LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); startTime = System.currentTimeMillis(); try { locationManager.requestSingleUpdate(criteria, this, null); } catch (SecurityException e) { Log.e(TAG, "permission not granted"); } }
protected void startLocationUpdates() { if(ActivityCompat.checkSelfPermission(Activity_Main.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(Activity_Main.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(Activity_Main.this, new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, LOCATION_REQUEST); return; } if (locationManager != null) { final int minTime = 10*1000; final int minDistance = 0; final Criteria criteria = new Criteria(); String provider; criteria.setAccuracy(Criteria.ACCURACY_FINE); provider = locationManager.getBestProvider(criteria, true); locationManager.requestLocationUpdates(provider, minTime, minDistance, listener); locationUpdatesRunning = true; } setToast(getResources().getString(R.string.location_updated_started), 0); }
private Criteria getProvider(LocationParams params) { final LocationAccuracy accuracy = params.getAccuracy(); final Criteria criteria = new Criteria(); switch (accuracy) { case HIGH: changeCriteria(criteria, Criteria.ACCURACY_FINE, Criteria.ACCURACY_HIGH, Criteria.POWER_HIGH); break; case MEDIUM: changeCriteria(criteria, Criteria.ACCURACY_COARSE, Criteria.ACCURACY_MEDIUM, Criteria.POWER_MEDIUM); break; case LOW: case LOWEST: default: changeCriteria(criteria, Criteria.ACCURACY_COARSE, Criteria.ACCURACY_LOW, Criteria.POWER_LOW); } return criteria; }
public void updateLocation(){ Criteria criteria = new Criteria(); String bestProvider = String.valueOf(locationManager.getBestProvider(criteria, true)).toString(); try { locationManager.requestLocationUpdates(bestProvider, 60000, 15, this); Handler h = new Handler(Looper.getMainLooper()); h.post(new Runnable() { public void run() { Toast.makeText(context, R.string.accessing_location, Toast.LENGTH_SHORT).show(); } }); }catch (SecurityException e){ } }
public OverlayView(Context context) { super(context); SensorManager sensors = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); Sensor accelSensor = sensors.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); Sensor compassSensor = sensors.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); Sensor gyroSensor = sensors.getDefaultSensor(Sensor.TYPE_GYROSCOPE); boolean isAccelAvailable = sensors.registerListener(this, accelSensor, SensorManager.SENSOR_DELAY_NORMAL); boolean isCompassAvailable = sensors.registerListener(this, compassSensor, SensorManager.SENSOR_DELAY_NORMAL); boolean isGyroAvailable = sensors.registerListener(this, gyroSensor, SensorManager.SENSOR_DELAY_NORMAL); locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setPowerRequirement(Criteria.NO_REQUIREMENT); String best = locationManager.getBestProvider(criteria, true); Log.v(DEBUG_TAG, "Best provider: " + best); locationManager.requestLocationUpdates(best, 50, 0, this); }
public void begin() { LocationManager lm = (LocationManager) ctx.getSystemService( Context.LOCATION_SERVICE); lm.addTestProvider( providerName, REQUIRES_NETWORK, REQUIRES_SATELLITE, REQUIRES_CELL, HAS_MONETARY_COST, SUPPORTS_ALTITUDE, SUPPORTS_SPEED, SUPPORTS_BEARING, Criteria.ACCURACY_LOW, Criteria.ACCURACY_FINE ); lm.setTestProviderEnabled(providerName, true); lm.setTestProviderStatus( LocationManager.GPS_PROVIDER, LocationProvider.AVAILABLE, null, System.currentTimeMillis()); }
private String getProvider(LocationManager locationManager) { // 构建位置查询条件 Criteria criteria = new Criteria(); // 查询精度:高 criteria.setAccuracy(Criteria.ACCURACY_FINE); // 速度 criteria.setSpeedRequired(false); // 是否查询海拨:否 criteria.setAltitudeRequired(false); // 是否查询方位角:否 criteria.setBearingRequired(false); // 电量要求:低 criteria.setPowerRequirement(Criteria.POWER_LOW); // 返回最合适的符合条件的provider,第2个参数为true说明,如果只有一个provider是有效的,则返回当前provider return locationManager.getBestProvider(criteria, true); }
private void initServices() { // sensor manager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); mOrientationSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); // location manager mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW); mLocationProvider = mLocationManager.getBestProvider(criteria, true); }
/** * 位置情報取得開始. * @param accuracy 精度. * @param interval 受信間隔. */ private void startGPS(final boolean accuracy, final int interval) { if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(), ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } Criteria criteria = new Criteria(); if (accuracy) { criteria.setAccuracy(Criteria.ACCURACY_FINE); } else { criteria.setAccuracy(Criteria.ACCURACY_COARSE); } mLocationManager.requestLocationUpdates(mLocationManager.getBestProvider(criteria, true), interval, 0, this, Looper.getMainLooper()); }
/** * Creates a new LocationSensor component. * * @param container ignored (because this is a non-visible component) */ public LocationSensor(ComponentContainer container) { super(container); handler = new Handler(); // Set up listener container.$form().registerForOnResume(this); container.$form().registerForOnStop(this); // Initialize location-related fields Context context = container.$context(); geocoder = new Geocoder(context); locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); locationCriteria = new Criteria(); locationCriteria.setSpeedRequired(true); myLocationListener = new MyLocationListener(); }
public GeoHelper(Context context) { //Constructor Log.i(TAG, "Initialize GeoHelper."); mContext = context; locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE); listAllProviders(); criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_COARSE); criteria.setAltitudeRequired(false); criteria.setCostAllowed(false); criteria.setPowerRequirement(Criteria.POWER_LOW); criteria.setSpeedRequired(false); chooseBestProvider(); }