android.location.GpsStatus#GPS_EVENT_SATELLITE_STATUS源码实例Demo

下面列出了android.location.GpsStatus#GPS_EVENT_SATELLITE_STATUS 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: apollo-DuerOS   文件: GPSListenersMaker.java
@Override
public void onGpsStatusChanged(int event) {
    switch (event) {
        // first time fix
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            break;
        // satellite status changed
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            GpsStatus gpsStatus = mLocationManager.getGpsStatus(null);
            int maxSatellites = gpsStatus.getMaxSatellites();
            Iterator iters = gpsStatus.getSatellites().iterator();
            int count = 0;
            while (iters.hasNext() && count <= maxSatellites) {
                iters.next();
                count++;
            }
            mSatellitesNum = count;
            break;
        case GpsStatus.GPS_EVENT_STARTED:
            break;
        case GpsStatus.GPS_EVENT_STOPPED:
            break;
        default:
            break;
    }
}
 
源代码2 项目: MVPAndroidBootstrap   文件: LocationHelper.java
public void onGpsStatusChanged(int event) {

            if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {
                try {
                    // Check number of satellites in list to determine fix state
                    GpsStatus status = myLocationManager.getGpsStatus(null);
                    Iterable<GpsSatellite> satellites = status.getSatellites();

                    sat_count = 0;

                    Iterator<GpsSatellite> satI = satellites.iterator();
                    while (satI.hasNext()) {
                        GpsSatellite satellite = satI.next();
                        Log.d(LogUtils.generateTag(this), "Satellite: snr=" + satellite.getSnr() + ", elevation=" + satellite.getElevation());
                        sat_count++;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    sat_count = min_gps_sat_count + 1;
                }

                Log.d(LogUtils.generateTag(this), "#### sat_count = " + sat_count);

            }
        }
 
源代码3 项目: RxAndroidBootstrap   文件: LocationHelper.java
public void onGpsStatusChanged(int event) {

            if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {
                try {
                    // Check number of satellites in list to determine fix state
                    GpsStatus status = myLocationManager.getGpsStatus(null);
                    Iterable<GpsSatellite> satellites = status.getSatellites();

                    sat_count = 0;

                    Iterator<GpsSatellite> satI = satellites.iterator();
                    while (satI.hasNext()) {
                        GpsSatellite satellite = satI.next();
                        Log.d(LogUtils.generateTag(this), "Satellite: snr=" + satellite.getSnr() + ", elevation=" + satellite.getElevation());
                        sat_count++;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    sat_count = min_gps_sat_count + 1;
                }

                Log.d(LogUtils.generateTag(this), "#### sat_count = " + sat_count);

            }
        }
 
源代码4 项目: CodenameOne   文件: AndroidLocationManager.java
public void onGpsStatusChanged(int event) {
    boolean isGPSFix = false;
    switch (event) {
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            if (lastLocation != null) {
                isGPSFix = (SystemClock.elapsedRealtime() - lastLocationMillis) < 10000;
            }
            if (isGPSFix) { // A fix has been acquired.
                setLocationManagerStatus(AVAILABLE);
            } else { // The fix has been lost.
                setLocationManagerStatus(TEMPORARILY_UNAVAILABLE);
            }
            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            setLocationManagerStatus(AVAILABLE);
            break;
    }
}
 
源代码5 项目: android_maplibui   文件: TrackerService.java
@Override
public void onGpsStatusChanged(int event) {
    switch (event) {
        case GpsStatus.GPS_EVENT_STARTED:
        case GpsStatus.GPS_EVENT_STOPPED:
            mHasGPSFix = false;
            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            mHasGPSFix = true;
            break;

        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            mSatellitesCount = 0;

            for (GpsSatellite sat : mLocationManager.getGpsStatus(null).getSatellites()) {
                if (sat.usedInFix()) {
                    mSatellitesCount++;
                }
            }
            break;
    }
}
 
源代码6 项目: android_maplib   文件: GpsEventSource.java
@Override
public void onGpsStatusChanged(int event)
{
    switch(event)
    {
        case GpsStatus.GPS_EVENT_STARTED:
        case GpsStatus.GPS_EVENT_STOPPED:
            mHasGPSFix = false;
            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            mHasGPSFix = true;
            break;
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            break;
    }

    for (GpsEventListener listener : mListeners) {
        listener.onGpsStatusChanged(event);
    }
}
 
源代码7 项目: osmdroid   文件: DiagnosticsActivity.java
@Override
public void onGpsStatusChanged(int event) {
    switch (event) {
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            try {
                gpsStatus = lm.getGpsStatus(gpsStatus);
            } catch (SecurityException e) {
                e.printStackTrace();
            }

            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            // Do something.
            break;
    }
}
 
源代码8 项目: geopaparazzi   文件: GpsStatusInfo.java
/**
 * Checks if there fix is still there based on the last picked location.
 *
 * @param hasFix                   fix state previous to the check.
 * @param lastLocationUpdateMillis the millis of the last picked location.
 * @param event                    the Gps status event triggered.
 * @return <code>true</code>, if it has fix.
 */
@SuppressWarnings("nls")
public static boolean checkFix(boolean hasFix, long lastLocationUpdateMillis, int event) {
    switch (event) {
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            long diff = SystemClock.elapsedRealtime() - lastLocationUpdateMillis;
            if (GPLog.LOG_ABSURD)
                GPLog.addLogEntry("GPSSTATUSINFO", "gps event diff: " + diff);
            if (diff < FIX_TIME_INTERVAL_CHECK) {
                if (!hasFix) {
                    hasFix = true;
                }
            } else {
                if (hasFix) {
                    hasFix = false;
                }
            }
            break;
    }
    return hasFix;
}
 
源代码9 项目: WhereYouGo   文件: GpsConnection.java
public void onGpsStatusChanged(int event) {
    // Logger.i(TAG, "onGpsStatusChanged(" + event + ")");
    try {
        if (locationManager == null)
            return;

        if (event == GpsStatus.GPS_EVENT_FIRST_FIX) {
            // Logger.w(TAG, "onGpsStatusChanged(" + event + "), first fix");
        } else if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {
            // Logger.w(TAG, "onGpsStatusChanged(" + event + "), satellite status");
            if (gpsStatus == null)
                gpsStatus = locationManager.getGpsStatus(null);
            else
                gpsStatus = locationManager.getGpsStatus(gpsStatus);

            LocationState.onGpsStatusChanged(event, gpsStatus);
        } else if (event == GpsStatus.GPS_EVENT_STARTED) {
            // Logger.w(TAG, "onGpsStatusChanged(" + event + "), started");
            LocationState.onGpsStatusChanged(event, null);
        } else if (event == GpsStatus.GPS_EVENT_STOPPED) {
            // Logger.w(TAG, "onGpsStatusChanged(" + event + "), stopped");
            LocationState.onGpsStatusChanged(event, null);
            // XXX this happen for unknown reason!
        }
    } catch (Exception e) {
        Logger.e(TAG, "onGpsStatusChanged(" + event + ")", e);
    }
}
 
源代码10 项目: WhereYouGo   文件: LocationState.java
static void onGpsStatusChanged(int event, GpsStatus gpsStatus) {
    if (mListeners == null || mListeners.size() == 0)
        return;

    if (event == GpsStatus.GPS_EVENT_STARTED || event == GpsStatus.GPS_EVENT_STOPPED) {
        for (int i = 0; i < mListeners.size(); i++) {
            mListeners.get(i).onStatusChanged(LocationManager.GPS_PROVIDER,
                    event == GpsStatus.GPS_EVENT_STARTED ? 2 : 1, null);
        }
    } else if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {
        ArrayList<SatellitePosition> pos = null;
        if (gpsStatus != null) {
            pos = new ArrayList<>();
            Iterator<GpsSatellite> enuSat = gpsStatus.getSatellites().iterator();
            // clear sats count
            mSatsCount.x = 0;
            mSatsCount.y = 0;
            while (enuSat.hasNext()) {
                GpsSatellite sat = enuSat.next();
                // pos.add(enuPos.nextElement());
                SatellitePosition satPos = new SatellitePosition();
                satPos.azimuth = sat.getAzimuth();
                satPos.elevation = sat.getElevation();
                satPos.prn = sat.getPrn();
                satPos.snr = (int) sat.getSnr();
                satPos.fixed = sat.usedInFix();
                if (satPos.fixed)
                    mSatsCount.x++;
                mSatsCount.y++;
                pos.add(satPos);
            }
        }
        postGpsSatelliteChange(pos);
    }
}
 
源代码11 项目: BackPackTrackII   文件: GpsStatusService.java
@Override
public void onGpsStatusChanged(int event) {
    if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {
        // Count fixed/visible satellites
        int fixed = 0;
        int visible = 0;
        LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
        for (GpsSatellite sat : lm.getGpsStatus(null).getSatellites()) {
            visible++;
            if (sat.usedInFix())
                fixed++;
        }

        // Persist fixed/visible satellites
        Log.i(TAG, "Satellites fixed/visible=" + fixed + "/" + visible);
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(GpsStatusService.this);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putInt(SettingsFragment.PREF_SATS_FIXED, fixed);
        editor.putInt(SettingsFragment.PREF_SATS_VISIBLE, visible);
        editor.apply();

        // Send state changed intent
        Intent intent = new Intent(GpsStatusService.this, BackgroundService.class);
        intent.setAction(BackgroundService.ACTION_STATE_CHANGED);
        startService(intent);
    }
}
 
源代码12 项目: mappwidget   文件: GPSLocationProvider.java
public void onGpsStatusChanged(int event) {
	
	if (passiveMode) {
		return;
	}
	
    switch (event) {
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            if (mLastLocation != null)
                isGpsFix = (SystemClock.elapsedRealtime() - mLastLocationMillis) < 3000;

            if (isGpsFix) { // A fix has been acquired.
            	filterNonGPSFix = true;
                // Do something.
            } else { // The fix has been lost.
            	filterNonGPSFix = false;
                // Do something.
            }

            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            // Do something.
        	isGpsFix = true;
        	filterNonGPSFix = true;

            break;
    }
}
 
源代码13 项目: GPSLogger   文件: GPSApplication.java
@Override
public void onGpsStatusChanged(final int event) {
    switch (event) {
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            // TODO: get here the status of the GPS, and save into a GpsStatus to be used for satellites visualization;
            // Use GpsStatus getGpsStatus (GpsStatus status)
            // https://developer.android.com/reference/android/location/LocationManager.html#getGpsStatus(android.location.GpsStatus)
            updateSats();
            break;
    }
}
 
源代码14 项目: nearbydemo   文件: GpsActivity.java
@Override
public void onGpsStatusChanged(int event) {
	// ��ȡ��ǰ״̬
	gpsstatus = locationManager.getGpsStatus(null);
	switch (event) {
	// ��һ�ζ�λʱ���¼�
	case GpsStatus.GPS_EVENT_FIRST_FIX:
		break;
	// ��ʼ��λ���¼�
	case GpsStatus.GPS_EVENT_STARTED:
		break;
	// ����GPS����״̬�¼�
	case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
		Toast.makeText(GpsActivity.this, "GPS_EVENT_SATELLITE_STATUS", Toast.LENGTH_SHORT).show();
		Iterable<GpsSatellite> allSatellites = gpsstatus.getSatellites();
		Iterator<GpsSatellite> it = allSatellites.iterator();
		int count = 0;
		while (it.hasNext()) {
			count++;
		}
		Toast.makeText(GpsActivity.this, "Satellite Count:" + count, Toast.LENGTH_SHORT).show();
		break;
	// ֹͣ��λ�¼�
	case GpsStatus.GPS_EVENT_STOPPED:
		Log.d(TAG, "GPS_EVENT_STOPPED");
		break;
	}
}
 
源代码15 项目: SpeedMeter   文件: MainActivity.java
@Override
public void onGpsStatusChanged (int event) {
    switch (event) {
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            GpsStatus gpsStatus = mLocationManager.getGpsStatus(null);
            int satsInView = 0;
            int satsUsed = 0;
            Iterable<GpsSatellite> sats = gpsStatus.getSatellites();
            for (GpsSatellite sat : sats) {
                satsInView++;
                if (sat.usedInFix()) {
                    satsUsed++;
                }
            }
            satellite.setText(String.valueOf(satsUsed) + "/" + String.valueOf(satsInView));
            if (satsUsed == 0) {
                fab.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_play));
                data.setRunning(false);
                status.setText("");
                stopService(new Intent(getBaseContext(), GpsServices.class));
                fab.setVisibility(View.INVISIBLE);
                refresh.setVisibility(View.INVISIBLE);
                accuracy.setText("");
                status.setText(getResources().getString(R.string.waiting_for_fix));
                firstfix = true;
            }
            break;

        case GpsStatus.GPS_EVENT_STOPPED:
            if (!mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                showGpsDisabledDialog();
            }
            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            break;
    }
}
 
private static InitStatus setGPSStatusListener(){

        // IMPORTANT: The GpsStatus.Listener Interface is deprecated at API 24.
        // Reference: https://developer.android.com/reference/android/location/package-summary.html
        _gpsStatusListener = new GpsStatus.Listener() {

            @Override
            public void onGpsStatusChanged(int event) {
                Log.d(TAG, "GPS status changed.");

                // Ignore if GPS_EVENT_STARTED or GPS_EVENT_STOPPED
                if(!Thread.currentThread().isInterrupted() &&
                        (event == GpsStatus.GPS_EVENT_FIRST_FIX ||
                                event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) &&
                                        _locationManager != null){
                    sendCallback(PluginResult.Status.OK,
                            JSONHelper.satelliteDataJSON(_locationManager.getGpsStatus(null)));
                }
            }
        };

        final InitStatus status = new InitStatus();

        final Boolean gpsProviderEnabled = _locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

        if(gpsProviderEnabled){
            try{
                _locationManager.addGpsStatusListener(_gpsStatusListener);
            }
            // if the ACCESS_FINE_LOCATION permission is not present
            catch(SecurityException exc){
                status.success = false;
                status.exception = exc.getMessage();
            }
        }
        else {
            //GPS not enabled
            status.success = false;
            status.error = ErrorMessages.GPS_UNAVAILABLE();
        }

        return status;
    }
 
源代码17 项目: trekarta   文件: LocationService.java
@Override
public void onGpsStatusChanged(int event) {
    if (enableMockLocations && BuildConfig.DEBUG)
        return;

    switch (event) {
        case GpsStatus.GPS_EVENT_STARTED:
            mGpsStatus = GPS_SEARCHING;
            mTSats = 0;
            mFSats = 0;
            updateGpsStatus();
            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            mContinuous = false;
            break;
        case GpsStatus.GPS_EVENT_STOPPED:
            tearTrack();
            mGpsStatus = GPS_OFF;
            mTSats = 0;
            mFSats = 0;
            updateGpsStatus();
            break;
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            if (mLocationManager == null)
                return;
            try {
                GpsStatus status = mLocationManager.getGpsStatus(null);
                Iterator<GpsSatellite> it = status.getSatellites().iterator();
                mTSats = 0;
                mFSats = 0;
                while (it.hasNext()) {
                    mTSats++;
                    GpsSatellite sat = it.next();
                    if (sat.usedInFix())
                        mFSats++;
                }
                if (mLastLocationMillis >= 0) {
                    if (SystemClock.elapsedRealtime() - mLastLocationMillis < 3000) {
                        mGpsStatus = GPS_OK;
                    } else {
                        if (mContinuous)
                            tearTrack();
                        mGpsStatus = GPS_SEARCHING;
                    }
                }
                updateGpsStatus();
            } catch (SecurityException e) {
                logger.error("Failed to update gps status", e);
            }
            break;
    }
}
 
源代码18 项目: Androzic   文件: LocationService.java
@Override
public void onGpsStatusChanged(int event)
{
	if (enableMockLocations)
		return;

	switch (event)
	{
		case GpsStatus.GPS_EVENT_STARTED:
			updateProvider(LocationManager.GPS_PROVIDER, true);
			updateGpsStatus(GPS_SEARCHING, 0, 0);
			break;
		case GpsStatus.GPS_EVENT_FIRST_FIX:
			isContinous = false;
			break;
		case GpsStatus.GPS_EVENT_STOPPED:
			tearTrack();
			updateGpsStatus(GPS_OFF, 0, 0);
			updateProvider(LocationManager.GPS_PROVIDER, false);
			break;
		case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
			if (locationManager == null)
				return;
			GpsStatus gpsStatus = locationManager.getGpsStatus(null);
			Iterator<GpsSatellite> it = gpsStatus.getSatellites().iterator();
			int tSats = 0;
			int fSats = 0;
			while (it.hasNext())
			{
				tSats++;
				GpsSatellite sat = (GpsSatellite) it.next();
				if (sat.usedInFix())
					fSats++;
			}
			if (SystemClock.elapsedRealtime() - lastLocationMillis < 3000)
			{
				updateGpsStatus(GPS_OK, fSats, tSats);
			}
			else
			{
				tearTrack();
				updateGpsStatus(GPS_SEARCHING, fSats, tSats);
			}
			break;
	}
}