/** * provider的在可用、暂时不可用和无服务三个状态直接切换时触发此函数 * * @param provider 提供者 * @param status 状态 * @param extras provider可选包 */ @Override public void onStatusChanged(String provider, int status, Bundle extras) { if (mListener != null) { mListener.onStatusChanged(provider, status, extras); } switch (status) { case LocationProvider.AVAILABLE: Log.d(TAG, "当前GPS状态为可见状态"); break; case LocationProvider.OUT_OF_SERVICE: Log.d(TAG, "当前GPS状态为服务区外状态"); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.d(TAG, "当前GPS状态为暂停服务状态"); break; } }
/** * provider的在可用、暂时不可用和无服务三个状态直接切换时触发此函数 * * @param provider 提供者 * @param status 状态 * @param extras provider可选包 */ @Override public void onStatusChanged(String provider, int status, Bundle extras) { if (mListener != null) { mListener.onStatusChanged(provider, status, extras); } switch (status) { case LocationProvider.AVAILABLE: LogUtils.d("onStatusChanged", "当前GPS状态为可见状态"); break; case LocationProvider.OUT_OF_SERVICE: LogUtils.d("onStatusChanged", "当前GPS状态为服务区外状态"); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: LogUtils.d("onStatusChanged", "当前GPS状态为暂停服务状态"); break; } }
/** * provider的在可用、暂时不可用和无服务三个状态直接切换时触发此函数 * * @param provider 提供者 * @param status 状态 * @param extras provider可选包 */ @Override public void onStatusChanged(String provider, int status, Bundle extras) { if (mListener != null) { mListener.onStatusChanged(provider, status, extras); } switch (status) { case LocationProvider.AVAILABLE: Logger.d("onStatusChanged", "当前GPS状态为可见状态"); break; case LocationProvider.OUT_OF_SERVICE: Logger.d("onStatusChanged", "当前GPS状态为服务区外状态"); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: Logger.d("onStatusChanged", "当前GPS状态为暂停服务状态"); break; } }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { LogHelper.debugLog("\"" + this.getClass().getName() + "\" onStatusChanged"); switch (status) { case LocationProvider.OUT_OF_SERVICE: LogHelper.infoLog("\"" + provider + "\" provider status changed: Out of service"); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: LogHelper.infoLog("\"" + provider + "\" provider status changed: Temporarily unavailable"); break; case LocationProvider.AVAILABLE: LogHelper.infoLog("\"" + provider + "\" provider status changed: Available"); break; } }
/** * provider的在可用、暂时不可用和无服务三个状态直接切换时触发此函数 * * @param provider 提供者 * @param status 状态 * @param extras provider可选包 */ @Override public void onStatusChanged(String provider, int status, Bundle extras) { if (mListener != null) { mListener.onStatusChanged(provider, status, extras); } switch (status) { case LocationProvider.AVAILABLE: Log.d("LocationUtils", "当前GPS状态为可见状态"); break; case LocationProvider.OUT_OF_SERVICE: Log.d("LocationUtils", "当前GPS状态为服务区外状态"); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.d("LocationUtils", "当前GPS状态为暂停服务状态"); break; } }
public void onStatusChanged(String provider, int status, Bundle extras) { switch (status) { // GPS状态为可见时 case LocationProvider.AVAILABLE: Log.i(TAG, "simpleGPS 当前GPS状态为可见状态"); break; // GPS状态为服务区外时 case LocationProvider.OUT_OF_SERVICE: Log.i(TAG, "当前GPS状态为服务区外状态"); break; // GPS状态为暂停服务时 case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.i(TAG, "当前GPS状态为暂停服务状态"); break; } }
/** * provider的在可用、暂时不可用和无服务三个状态直接切换时触发此函数 * * @param provider 提供者 * @param status 状态 * @param extras provider可选包 */ @Override public void onStatusChanged(String provider, int status, Bundle extras) { if (mListener != null) { mListener.onStatusChanged(provider, status, extras); } switch (status) { case LocationProvider.AVAILABLE: Log.d("onStatusChanged", "当前GPS状态为可见状态"); break; case LocationProvider.OUT_OF_SERVICE: Log.d("onStatusChanged", "当前GPS状态为服务区外状态"); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.d("onStatusChanged", "当前GPS状态为暂停服务状态"); break; } }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { String statusString; switch (status) { case LocationProvider.AVAILABLE: statusString = "AVAILABLE"; break; case LocationProvider.OUT_OF_SERVICE: statusString = "OUT_OF_SERVICE"; break; case LocationProvider.TEMPORARILY_UNAVAILABLE: statusString = "TEMPORARILY_UNAVAILABLE"; break; default: statusString = "UNKNOWN"; break; } Log.d(INNER_TAG, String.format("onStatusChanged(): %s", statusString)); }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { Log.i(TAG, "onStatusChanged() Status=" + status); if (listener != null) switch (status) { case LocationProvider.AVAILABLE: listener.onProviderAvailable(); break; case LocationProvider.OUT_OF_SERVICE: locationManager.removeUpdates(locationListener); listener.onProviderUnavailable(); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: locationManager.removeUpdates(locationListener); listener.onProviderUnavailable(); break; } }
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()); }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { String statusStr = null; switch (status) { case LocationProvider.OUT_OF_SERVICE: statusStr = "OUT_OF_SERVICE"; break; case LocationProvider.TEMPORARILY_UNAVAILABLE: statusStr = "TEMPORARILY_UNAVAILABLE"; break; case LocationProvider.AVAILABLE: statusStr = "AVAILABLE"; break; } Log.v(TAG, "onStatusChange(" + provider + ", " + statusStr + ")"); }
@Override public void activate(OnLocationChangedListener listener) { this.listener = listener; LocationProvider gpsProvider = locationManager .getProvider(LocationManager.GPS_PROVIDER); if (gpsProvider != null) { locationManager.requestLocationUpdates(gpsProvider.getName(), 10, 100, this); } LocationProvider networkProvider = locationManager .getProvider(LocationManager.NETWORK_PROVIDER); if (networkProvider != null) { locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 1000 * 60 * 5, 0, this); } }
protected AndroidLocationOutput(AndroidSensorsDriver parentModule, LocationManager locManager, LocationProvider locProvider) { super(parentModule); this.locManager = locManager; this.locProvider = locProvider; this.name = locProvider.getName().replaceAll(" ", "_") + "_data"; // output structure (time + location) GeoPosHelper fac = new GeoPosHelper(); posDataStruct = fac.newDataRecord(2); posDataStruct.setName(getName()); Time time = fac.newTimeStampIsoUTC(); posDataStruct.addComponent("time", time); Vector vec = fac.newLocationVectorLLA(null); ((Vector)vec).setLocalFrame(parentSensor.localFrameURI); posDataStruct.addComponent("location", vec); // output encoding posEncoding = fac.newTextEncoding(",", "\n"); }
private long positioningMethods (String provider) { long positioningMethod=0; LocationProvider providerInfo=m_locationManager.getProvider(provider); if(providerInfo.requiresSatellite()) { positioningMethod=0x000000ff;//Satellite-based positioning methods such as GPS } if(providerInfo.requiresCell()||providerInfo.requiresNetwork()) { //0xffffff00 is for other-based positioning methods //0xffffffff is for all methods positioningMethod|= 0xffffff00; } return positioningMethod; }
@Override public void onStatusChanged(final String pProvider, final int pStatus, final Bundle pExtras) { switch (pStatus) { case LocationProvider.AVAILABLE: this.mLocationListener.onLocationProviderStatusChanged(LocationProviderStatus.AVAILABLE, pExtras); break; case LocationProvider.OUT_OF_SERVICE: this.mLocationListener.onLocationProviderStatusChanged(LocationProviderStatus.OUT_OF_SERVICE, pExtras); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: this.mLocationListener.onLocationProviderStatusChanged(LocationProviderStatus.TEMPORARILY_UNAVAILABLE, pExtras); break; default: throw new IllegalArgumentException("Unexpected " + LocationProvider.class.getSimpleName() + ": '" + pStatus + "'."); } }
private void updateLocation() { // TODO(johntaylor): add other things like number of satellites and status String gpsStatusMessage; try { LocationProvider gps = locationManager.getProvider(LocationManager.GPS_PROVIDER); boolean gpsStatus = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); if (gps == null) { gpsStatusMessage = getString(R.string.no_gps); } else { gpsStatusMessage = gpsStatus ? getString(R.string.enabled) : getString(R.string.disabled); } } catch (SecurityException ex) { gpsStatusMessage = getString(R.string.permission_disabled); } setText(R.id.diagnose_gps_status_txt, gpsStatusMessage); LatLong currentLocation = locationController.getCurrentLocation(); String locationMessage = currentLocation.getLatitude() + ", " + currentLocation.getLongitude(); // Current provider not working + " (" + locationController.getCurrentProvider() + ")"; setText(R.id.diagnose_location_txt, locationMessage); }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { String newStatus = ""; switch (status) { case LocationProvider.OUT_OF_SERVICE: newStatus = "OUT_OF_SERVICE"; break; case LocationProvider.TEMPORARILY_UNAVAILABLE: newStatus = "TEMPORARILY_UNAVAILABLE"; break; case LocationProvider.AVAILABLE: newStatus = "AVAILABLE"; break; } debug(provider + " offline: " + newStatus + "."); }
/** * This method is called when a provider is unable to fetch a location. Called when the provider * status changes. */ @Override public void onStatusChanged(String provider, int status, Bundle extras) { switch (status) { case LocationProvider.OUT_OF_SERVICE: if (location == null || location.getProvider().equals(provider)) { location = null; } break; case LocationProvider.TEMPORARILY_UNAVAILABLE: if (location == null || location.getProvider().equals(provider)) { } break; case LocationProvider.AVAILABLE: break; } }
public void disableMockLocationProvider(){ try { LocationProvider prov; if (mockGpsEnabled){ prov = lm.getProvider(LocationManager.GPS_PROVIDER); mockGpsEnabled = false; if ( mockGpsAutoEnabled ) { Log.d(LOG_TAG, "disabling Mock provider."); lm.setTestProviderEnabled(LocationManager.GPS_PROVIDER, false); } lm.clearTestProviderEnabled(LocationManager.GPS_PROVIDER); lm.clearTestProviderStatus(LocationManager.GPS_PROVIDER); lm.removeTestProvider(LocationManager.GPS_PROVIDER); Log.d(LOG_TAG, "removed mock GPS"); } else { Log.d(LOG_TAG, "Mock provider already disabled."); } } catch (SecurityException e){ Log.e(LOG_TAG, "Error while enabling Mock Mocations Provider", e); } finally { mockGpsEnabled = false; mockGpsAutoEnabled = false; mockStatus = LocationProvider.OUT_OF_SERVICE; } }
/** {@inheritDoc} */ @Override public void onStatusChanged (String provider, int status, Bundle extras) { // Called when the provider status changes. Log.d(TAG, "Provider status changed: " + provider + " status: " + status); if (status == LocationProvider.AVAILABLE) { // Do nothing, we should get a location update soon which will // disable the listener. } else if (status == LocationProvider.OUT_OF_SERVICE || status == LocationProvider.TEMPORARILY_UNAVAILABLE) { getLocationButton.setEnabled(true); getLocationButton.setText( getString(R.string.gps_element_acquire_unavailable)); locationManager.removeUpdates(locationListener); } }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { // This is called when the GPS status changes switch (status) { case LocationProvider.OUT_OF_SERVICE: //Log.w("myApp", "[#] GPSApplication.java - GPS Out of Service"); gpsunavailablehandler.removeCallbacks(unavailr); // Cancel the previous unavail countdown handler GPSStatus = GPS_OUTOFSERVICE; EventBus.getDefault().post(EventBusMSG.UPDATE_FIX); //Toast.makeText( getApplicationContext(), "GPS Out of Service", Toast.LENGTH_SHORT).show(); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: //Log.w("myApp", "[#] GPSApplication.java - GPS Temporarily Unavailable"); gpsunavailablehandler.removeCallbacks(unavailr); // Cancel the previous unavail countdown handler GPSStatus = GPS_TEMPORARYUNAVAILABLE; EventBus.getDefault().post(EventBusMSG.UPDATE_FIX); //Toast.makeText( getApplicationContext(), "GPS Temporarily Unavailable", Toast.LENGTH_SHORT).show(); break; case LocationProvider.AVAILABLE: gpsunavailablehandler.removeCallbacks(unavailr); // Cancel the previous unavail countdown handler //Log.w("myApp", "[#] GPSApplication.java - GPS Available: " + _NumberOfSatellites + " satellites"); break; } }
public void testGPS() { LocationManager lm = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); lm.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true); lm.setTestProviderStatus(LocationManager.GPS_PROVIDER, LocationProvider.AVAILABLE, null, System.currentTimeMillis()); Location location = new Location(LocationManager.GPS_PROVIDER); location.setLatitude(1.0); location.setLongitude(2.0); location.setTime(System.currentTimeMillis()); lm.setTestProviderLocation(LocationManager.GPS_PROVIDER, location); try { Thread.sleep(2000); assertTrue(location.getLatitude() == 1.0 && location.getLongitude() == 2.0); } catch(InterruptedException e) { } }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { String statusString = "Unknown"; switch (status) { case LocationProvider.OUT_OF_SERVICE: statusString = "Out of service"; break; case LocationProvider.TEMPORARILY_UNAVAILABLE: statusString = "Temporary unavailable"; break; case LocationProvider.AVAILABLE: statusString = "Available"; break; } Toast.makeText( MainActivity.this, String.format("Provider '%s' status: %s", provider, statusString), Toast.LENGTH_SHORT) .show(); }
public void onStatusChanged(String provider, int status, Bundle extras) { /* * If provider service is no longer available, stop trying to get * updates from both providers but start timer. */ if (status != LocationProvider.AVAILABLE) { removeLocationUpdate(provider); if (countDownTimer != null) { try { countDownTimer.cancel(); } catch (Exception e) { Util.logError(context, TAG, "exception cancelling countdown timer"); } } else { countDownTimer = new MyCountDownTimer(5 * 60 * 1000, 5 * 60 * 1000); } countDownTimer.start(); } }
public void onStatusChanged( String provider, int status, Bundle extras) { switch(status) { case LocationProvider.OUT_OF_SERVICE: case LocationProvider.TEMPORARILY_UNAVAILABLE: { mValid = false; if (mRecordLocation && LocationManager.GPS_PROVIDER.equals(provider)) { if (mHeadUpDisplay != null) { mHeadUpDisplay.setGpsHasSignal(false); } } break; } } }
public void onAccurateProvider() { Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setSpeedRequired(true); criteria.setAltitudeRequired(true); LocationManager lm = (LocationManager) getActivity().getSystemService( Context.LOCATION_SERVICE); List<String> matchingProvideNames = lm.getProviders(criteria, false); for (String providerName : matchingProvideNames) { LocationProvider provider = lm.getProvider(providerName); String logMessage = LogHelper.formationLocationProvider( getActivity(), provider); Log.d(_logTag, logMessage); } }
public void onLowPowerProvider() { Criteria criteria = new Criteria(); criteria.setPowerRequirement(Criteria.POWER_LOW); LocationManager lm = (LocationManager) getActivity().getSystemService( Context.LOCATION_SERVICE); List<String> matchingProvideNames = lm.getProviders(criteria, false); for (String providerName : matchingProvideNames) { LocationProvider provider = lm.getProvider(providerName); String logMessage = LogHelper.formationLocationProvider( getActivity(), provider); Log.d(_logTag, logMessage); } }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { // Update provider status image according to status Log.d(TAG, "Location provider " + provider + " status changed to: " + status); ImageView imgSatIndicator = (ImageView) findViewById(R.id.gpsstatus_record_imgSatIndicator); TextView tvAccuracy = (TextView) findViewById(R.id.gpsstatus_record_tvAccuracy); switch (status) { // Don't do anything for status AVAILABLE, as this event occurs frequently, // changing the graphics cause flickering . case LocationProvider.OUT_OF_SERVICE: imgSatIndicator.setImageResource(R.drawable.sat_indicator_off); tvAccuracy.setText(""); gpsActive = false; activity.onGpsDisabled(); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: imgSatIndicator.setImageResource(R.drawable.sat_indicator_unknown); tvAccuracy.setText(""); gpsActive = false; break; } }
/** * Adds a new mock location * @param latitude * @param longitude * @param accuracy meters * @param altitude meters * @param bearing degrees * @param speed meters per second * @param time */ public void addNewLocation(double latitude, double longitude, float accuracy, double altitude, float bearing, float speed, long time){ if(isAllowMockLocations(_activity) == true){ Location location = new Location(_providerName); location.setLatitude(latitude); location.setLongitude(longitude); location.setAccuracy(accuracy); location.setAltitude(altitude); location.setBearing(bearing); location.setSpeed(speed); location.setTime(time); _locationManager.setTestProviderEnabled(_providerName, true); _locationManager.setTestProviderStatus(_providerName, LocationProvider.AVAILABLE, null, System.currentTimeMillis()); _locationManager.setTestProviderLocation(_providerName, location); } else{ Log.d("MockLocationTest","MockLocationTest: ALLOW_MOCK_LOCATION is not specified in manifest."); Toast toast = Toast.makeText(_activity, "ALLOW_MOCK_LOCATION is not specified in manifest", Toast.LENGTH_LONG); toast.show(); } }
@Override public void activate(OnLocationChangedListener listener) { this.listener = listener; LocationProvider gpsProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER); if(gpsProvider != null) { locationManager.requestLocationUpdates(gpsProvider.getName(), 0, 2, this); } LocationProvider networkProvider = locationManager.getProvider(LocationManager.NETWORK_PROVIDER); LocationProvider passiveProvider = locationManager.getProvider(LocationManager.PASSIVE_PROVIDER); if(networkProvider != null) { locationManager.requestLocationUpdates(networkProvider.getName(), 0, 0, this); } if(passiveProvider != null) { locationManager.requestLocationUpdates(passiveProvider.getName(), 0, 0, this); } }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub /* This is called when the GPS status alters */ switch (status) { case LocationProvider.OUT_OF_SERVICE: Log.v(tag, "Status Changed: Out of Service"); Toast.makeText(this, "Status Changed: Out of Service", Toast.LENGTH_SHORT).show(); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.v(tag, "Status Changed: Temporarily Unavailable"); Toast.makeText(this, "Status Changed: Temporarily Unavailable", Toast.LENGTH_SHORT).show(); break; case LocationProvider.AVAILABLE: Log.v(tag, "Status Changed: Available"); Toast.makeText(this, "Status Changed: Available", Toast.LENGTH_SHORT).show(); break; } }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { if (enableMockLocations) return; if (LocationManager.GPS_PROVIDER.equals(provider)) { switch (status) { case LocationProvider.TEMPORARILY_UNAVAILABLE: case LocationProvider.OUT_OF_SERVICE: tearTrack(); updateNotification(); break; } } }