Java 类android.location.GpsStatus 实例源码

项目: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);

            }
        }
项目:letv    文件:e.java   
private void b() {
    this.m = 0;
    this.l = 0;
    GpsStatus gpsStatus = b.getGpsStatus(null);
    if (gpsStatus != null) {
        int maxSatellites = gpsStatus.getMaxSatellites();
        Iterator it = gpsStatus.getSatellites().iterator();
        if (it != null) {
            while (it.hasNext() && this.l <= maxSatellites) {
                this.l++;
                if (((GpsSatellite) it.next()).usedInFix()) {
                    this.m++;
                }
            }
        }
    }
}
项目:GravityBox    文件:GpsStatusMonitor.java   
@Override
public void onGpsStatusChanged(int event) {
    switch (event) {
        case GpsStatus.GPS_EVENT_STARTED:
            if (DEBUG) log("onGpsStatusChanged: GPS_EVENT_STARTED");
            break;
        case GpsStatus.GPS_EVENT_STOPPED:
            if (DEBUG) log("onGpsStatusChanged: GPS_EVENT_STOPPED");
            if (mGpsFixed) {
                mGpsFixed = false;
                notifyGpsFixChanged();
            }
            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            if (DEBUG) log("onGpsStatusChanged: GPS_EVENT_FIRST_FIX");
            mGpsFixed = true;
            notifyGpsFixChanged();
            break;
    }
}
项目:RoadLab-Pro    文件:GPSDetector.java   
@Override
public void onGpsStatusChanged(int event) {

    switch (event) {
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            gpsEnabled = true;
            gpsFix = true;
            break;
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            gpsEnabled = true;
            gpsFix = System.currentTimeMillis() - timestamp < DURATION_TO_FIX_LOST_MS;
            break;
        case GpsStatus.GPS_EVENT_STARTED:
            gpsEnabled = true;
            gpsFix = false;
            break;
        case GpsStatus.GPS_EVENT_STOPPED:
            gpsEnabled = false;
            gpsFix = false;
            break;
        default:
            return;
    }
    //Log.d(TAG, "onGpsStatusChanged :: " + event);
}
项目:AndroidPractice    文件:GpsActivity.java   
public void onGpsStatusChanged(int event) { // GPS状态变化时的回调,如卫星数
            GpsStatus status = locationManager.getGpsStatus(null); //取当前状态
            if(event == GpsStatus.GPS_EVENT_SATELLITE_STATUS){
                int maxSatellites = status.getMaxSatellites();
                Iterator<GpsSatellite> it = status.getSatellites().iterator();
                mSatelliteList.clear();
                int count = 0;
                while (it.hasNext() && count <= maxSatellites) {
                    GpsSatellite s = it.next();
//                Log.i("gjh","~~~~~~~~~~~~~~~~~~~~~~~~~~~" );
//                Log.i("gjh","信号:" + s.getSnr());
//                Log.i("gjh","序号:" + s.getPrn());
//                Log.i("gjh","卫星仰角:" + s.getElevation());
//                Log.i("gjh","卫星方位角 :" + s.getAzimuth());
//                Log.i("gjh","^^^^^^^^^^^^^^^^^^^^^^^^^^^^" );
                    mSatelliteList.add(s);
                    count++;
                }
            }
            mAdapter.notifyDataSetChanged();
            Log.i(TAG,mSatelliteList.size()+"" );
        }
项目:OtterBenchmark    文件:GpsMonitor.java   
@Override
public void onGpsStatusChanged(int event) {
    String eventStr = null;
    switch (event) {
        case GpsStatus.GPS_EVENT_STARTED:
            eventStr = "GPS_EVENT_STARTED";
            break;
        case GpsStatus.GPS_EVENT_STOPPED:
            eventStr = "GPS_EVENT_STOPPED";
            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            eventStr = "GPS_EVENT_FIRST_FIX";
            break;
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            eventStr = "GPS_EVENT_SATELLITE_STATUS";
            break;
    }
    Log.v(TAG, "onGpsStatusChanged("+ eventStr + ")");

    showGpsStatusInfo(mLocationManager.getGpsStatus(null));
}
项目:iTester    文件:GPSActivity.java   
private String updateGpsStatus(int event, GpsStatus status) {  
    StringBuilder sb2 = new StringBuilder("");  
    if (status == null) {  
        uHandler.sendEmptyMessage(1);
        sb2.append(getResources().getString(R.string.label_gps_satellitenumber) +0);  
    } else if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) {  
        int maxSatellites = status.getMaxSatellites();  
        Iterator<GpsSatellite> it = status.getSatellites().iterator();  
        numSatelliteList.clear();  
        int count = 0;  
        while (it.hasNext() && count <= maxSatellites) {  
            GpsSatellite s = it.next();  
            numSatelliteList.add(s);  
            count++;  
        }  
        sb2.append(getResources().getString(R.string.label_gps_satellitenumber) + numSatelliteList.size());  
        uHandler.sendEmptyMessage(1);
    }  

    return sb2.toString();  
}
项目:uds    文件:QtLocation.java   
public void onGpsStatusChanged(int event) {

        switch(event)
        {
            case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
                m_locationManager.getGpsStatus(m_status);
                Iterable<GpsSatellite> iSatellite=m_status.getSatellites();
                Iterator<GpsSatellite> iterator=iSatellite.iterator();
                ArrayList<QtSatInfo> satInfo=new ArrayList<QtSatInfo>();
                int index=0;
                while(iterator.hasNext())
                {
                    GpsSatellite gpsSat=iterator.next();

                    satInfo.add(new QtSatInfo(gpsSat.getPrn(),gpsSat.getSnr(),
                            gpsSat.getElevation(), gpsSat.getAzimuth()));
                    index++;
                }

                if(0!=index)
                    gpsSatelliteDataUpdated(satInfo.toArray());
                break;
        }

    }
项目: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);

            }
        }
项目:tabulae    文件:LocusService.java   
@Override public void onGpsStatusChanged(int event) {
    gpsStatus = locationManager.getGpsStatus(gpsStatus);
    switch (event) {
        case GpsStatus.GPS_EVENT_STARTED:
        case GpsStatus.GPS_EVENT_FIRST_FIX:
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
        case GpsStatus.GPS_EVENT_STOPPED:
        default:
    }
    int count_seen = 0;
    int count_fix = 0;
    for (GpsSatellite s: gpsStatus.getSatellites()) {
        count_seen++;
        if (s.usedInFix())
            count_fix++;
        // Log.d(TAG, "getSnr=" + s.getSnr());
    }
    // Log.d(TAG, "LocusService.onGpsStatusChanged event=" + event
        // + ", satellites=" + count_fix + "/" + count_seen + "/" + gpsStatus.getMaxSatellites()
        // + ", timeToFirstFix=" + gpsStatus.getTimeToFirstFix()
        // );
}
项目:moveon    文件:MoveOnService.java   
@Override
public void onGpsStatusChanged(int event) {
    switch (event) {
    case GpsStatus.GPS_EVENT_STARTED:
        isGPSFix = false;
        checkGpsStatus();
        break;
    case GpsStatus.GPS_EVENT_FIRST_FIX:
        isGPSFix = true;
        checkGpsStatus();
        break;
    case GpsStatus.GPS_EVENT_STOPPED:
        isGPSFix = false;
        sendStoppedStatus();
        break;
    case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
        isGPSFix = false;
        if ((SystemClock.elapsedRealtime() - mLastLocationMillis) < GPS_UPDATE_EXCEEDED_TIME)
            isGPSFix = true;

        checkGpsStatus();

        break;
    }
}
项目:MiBandDecompiled    文件:e.java   
private void b()
{
    m = 0;
    l = 0;
    GpsStatus gpsstatus = b.getGpsStatus(null);
    if (gpsstatus != null)
    {
        int i1 = gpsstatus.getMaxSatellites();
        Iterator iterator = gpsstatus.getSatellites().iterator();
        if (iterator != null)
        {
            while (iterator.hasNext() && l <= i1) 
            {
                l = 1 + l;
                if (((GpsSatellite)iterator.next()).usedInFix())
                {
                    m = 1 + m;
                }
            }
        }
    }
}
项目:MiBandDecompiled    文件:LocationManagerProxy.java   
public GpsStatus getGpsStatus(GpsStatus gpsstatus)
{
    LocationManager locationmanager;
    GpsStatus gpsstatus1;
    GpsStatus gpsstatus2;
    try
    {
        locationmanager = a;
    }
    catch (Throwable throwable)
    {
        throwable.printStackTrace();
        return null;
    }
    gpsstatus1 = null;
    if (locationmanager == null)
    {
        break MISSING_BLOCK_LABEL_26;
    }
    gpsstatus2 = a.getGpsStatus(gpsstatus);
    gpsstatus1 = gpsstatus2;
    return gpsstatus1;
}
项目: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;
    }
}
项目:GPSLogger    文件:GPSApplication.java   
public void updateSats() {
    if ((mlocManager != null) && (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED))
    {
        final GpsStatus gs = mlocManager.getGpsStatus(null);
        int sats_inview = 0;    // Satellites in view;
        int sats_used = 0;      // Satellites used in fix;

        if (gs != null) {
            Iterable<GpsSatellite> sats = gs.getSatellites();
            for (GpsSatellite sat : sats) {
                sats_inview++;
                if (sat.usedInFix()) sats_used++;
                //Log.w("myApp", "[#] GPSApplication.java - updateSats: i=" + i);
            }
            _NumberOfSatellites = sats_inview;
            _NumberOfSatellitesUsedInFix = sats_used;
        } else {
            _NumberOfSatellites = NOT_AVAILABLE;
            _NumberOfSatellitesUsedInFix = NOT_AVAILABLE;
        }
    } else {
        _NumberOfSatellites = NOT_AVAILABLE;
        _NumberOfSatellitesUsedInFix = NOT_AVAILABLE;
    }
    //Log.w("myApp", "[#] GPSApplication.java - updateSats: Total=" + _NumberOfSatellites + " Used=" + _NumberOfSatellitesUsedInFix);
}
项目: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;
    }
}
项目: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);
    }
}
项目:Flight-Computer-Android-Flightradar24    文件:GpsSkyActivity.java   
@Override
public void onGpsStatusChanged(int arg0) {
    // TODO Auto-generated method stub
    GpsStatus gpsstatus = locationManager.getGpsStatus(null);    
     switch (arg0) {
        case GpsStatus.GPS_EVENT_STARTED:
           mSkyView.setStarted();
           setStarted(true);   
            break;
        case GpsStatus.GPS_EVENT_STOPPED:
           mSkyView.setStopped();
           setStarted(false);   
            break;

        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:           
            mSkyView.setSats(gpsstatus);
            updateStatus(gpsstatus);
            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:                     
           break;
    }
}
项目:Flight-Computer-Android-Flightradar24    文件:GpsSkyActivity.java   
private void updateStatus(GpsStatus status) {
    setStarted(true);           
    Iterator<GpsSatellite> satellites = status.getSatellites().iterator();
    if (mPrns == null) {
        int length = status.getMaxSatellites();
        mPrns = new int[length];
        mSnrs = new float[length];
        mSvElevations = new float[length];
        mSvAzimuths = new float[length];
    }
    mSvCount = 0;          
    while (satellites.hasNext()) {
        GpsSatellite satellite = satellites.next();
        int prn = satellite.getPrn();
        mPrns[mSvCount] = prn;
        mSnrs[mSvCount] = satellite.getSnr();
        mSvElevations[mSvCount] = satellite.getElevation();
        mSvAzimuths[mSvCount] = satellite.getAzimuth();             
        mSvCount++;
    }
    mAdapter.notifyDataSetChanged();
}
项目:Flight-Computer-Android-Flightradar24    文件:GpsSkyView.java   
public void setSats(GpsStatus status) {
    Iterator<GpsSatellite> satellites = status.getSatellites().iterator();

    if (mSnrs == null) {
        int length = status.getMaxSatellites();
        mSnrs = new float[length];
        mElevs = new float[length];
        mAzims = new float[length];
    }

    mSvCount = 0;
    while (satellites.hasNext()) {
        GpsSatellite satellite = satellites.next();
        mSnrs[mSvCount] = satellite.getSnr();
        mElevs[mSvCount] = satellite.getElevation();
        mAzims[mSvCount] = satellite.getAzimuth();
        mSvCount++;
    }

    mStarted = true;
    invalidate();
}
项目:nethunter-app    文件:NMEA.java   
public static String formatGpsGsa(GpsStatus gps) {
    String fix = "1";
    String prn = "";
    int nbr_sat = 0;
    Iterator<GpsSatellite> satellites = gps.getSatellites().iterator();
    for (int i = 0; i < 12; i++) {
        if (satellites.hasNext()) {
            GpsSatellite sat = satellites.next();
            if (sat.usedInFix()) {
                prn = prn + sat.getPrn();
                nbr_sat++;
            }
        }

        prn = prn + ",";
    }

    if (nbr_sat > 3)
        fix = "3";
    else if (nbr_sat > 0)
        fix = "2";

    //TODO: calculate DOP values
    return fix + "," + prn + ",,,";
}
项目:cn1    文件: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;
    }
}
项目:ironman    文件:GPSTracker.java   
@Override
public void onGpsStatusChanged(int event) {
    switch (event) {
    case android.location.GpsStatus.GPS_EVENT_STARTED:
        break;

    case android.location.GpsStatus.GPS_EVENT_SATELLITE_STATUS:
        satellites.clear();
        gpsStatus = locationManager.getGpsStatus(gpsStatus);
        for (GpsSatellite sat : gpsStatus.getSatellites()) {
            if (sat.usedInFix()) {
                satellites.add(sat);
            }
        }
        break;

    case android.location.GpsStatus.GPS_EVENT_FIRST_FIX:
        break;

    case android.location.GpsStatus.GPS_EVENT_STOPPED:
        break;
    }
}
项目:geodroid_master_update    文件: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.
 */
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;
}
项目:geodroid_master_update    文件:ActionBar.java   
public void onGpsStatusChanged( int event, GpsStatus status ) {
    boolean tmpGotFix = GpsStatusInfo.checkFix(gotFix, lastLocationupdateMillis, event);
    if (tmpGotFix != gotFix) {
        gotFix = tmpGotFix;
        if (LOG_HOW)
            if (gotFix) {
                GPLog.addLogEntry(this, "Aquired fix.");
            } else {
                GPLog.addLogEntry(this, "Lost fix.");
            }
        if (!gotFix) {
            // check if it is just standing still
            GpsStatusInfo info = new GpsStatusInfo(status);
            int satForFixCount = info.getSatUsedInFixCount();
            if (satForFixCount > 2) {
                gotFix = true;
                // updating loc update, assuming the still filter is giving troubles
                lastLocationupdateMillis = SystemClock.elapsedRealtime();
                if (LOG_HOW)
                    GPLog.addLogEntry(this, "Fix kept due to fix satellites.");
            }
        }
        checkLogging();
    }
    lastGpsStatus = status;
}
项目:satstat    文件:PasvLocListenerService.java   
@Override
public void onGpsStatusChanged(int event) {
    GpsStatus status = mLocationManager.getGpsStatus(null);
    int satsUsed = 0;
    Iterable<GpsSatellite> sats = status.getSatellites();
    for (GpsSatellite sat : sats) {
        if (sat.usedInFix()) {
            satsUsed++;
        }
    }
    if (satsUsed == 0) {
        if (mStatus != GPS_INACTIVE)
            mStatus = GPS_SEARCH;
        showStatusNoLocation();
    }
}
项目:satstat    文件:MainActivity.java   
/**
   * Called when the status of the GPS changes. Updates GPS display.
   */
  public void onGpsStatusChanged (int event) {
GpsStatus status = locationManager.getGpsStatus(null);
int satsInView = 0;
int satsUsed = 0;
Iterable<GpsSatellite> sats = status.getSatellites();
for (GpsSatellite sat : sats) {
    satsInView++;
    if (sat.usedInFix()) {
        satsUsed++;
    }
}

if (gpsSectionFragment != null) {
        gpsSectionFragment.onGpsStatusChanged(status, satsInView, satsUsed, sats);
    }

if (mapSectionFragment != null) {
    mapSectionFragment.onGpsStatusChanged(status, satsInView, satsUsed, sats);
}
  }
项目:osmLib    文件:OsmAndLocationProvider.java   
private void updateGPSInfo(GpsStatus s) {
    boolean fixed = false;
    int n = 0;
    int u = 0;
    if (s != null) {
        Iterator<GpsSatellite> iterator = s.getSatellites().iterator();
        while (iterator.hasNext()) {
            GpsSatellite g = iterator.next();
            n++;
            if (g.usedInFix()) {
                u++;
                fixed = true;
            }
        }
    }
    gpsInfo.fixed = fixed;
    gpsInfo.foundSatellites = n;
    gpsInfo.usedSatellites = u;
    Log.d(TAG, "updateGPSInfo : " + gpsInfo);
}
项目:siarhei.luskanau.gps.tracker.free    文件:LocationService.java   
private void updateSatellites(Location location) {
    if (location.getExtras() != null && location.getExtras().containsKey(AppConstants.SATELLITES)) {
        return;
    }
    try {
        GpsStatus localGpsStatus = locationManager.getGpsStatus(null);
        int satellites = 0;
        Iterator<GpsSatellite> iterator = localGpsStatus.getSatellites().iterator();
        for (; iterator.hasNext(); ) {
            if (iterator.next().usedInFix()) {
                satellites++;
            }
        }
        if (satellites > 0) {
            location.getExtras().putInt(AppConstants.SATELLITES, satellites);
        }
    } catch (Exception e) {
        Log.w(getPackageName(), e);
    }
}
项目:beyondar    文件:BeyondarLocationManager.java   
public void onGpsStatusChanged(int event) {
    switch (event) {
    case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
        if (mLocationListener.getLastGpsLocation() != null) {
            if ((System.currentTimeMillis() - mLocationListener.getLastGpsLocation().getTime()) < MAX_TIME_GPS_FIX) {
                if (!mGpsFix)
                    mGpsFix = true;
            } else {
                if (mGpsFix) {
                    enable();
                }
                mGpsFix = false;
            }
        }
        break;
    case GpsStatus.GPS_EVENT_FIRST_FIX:
        mGpsFix = true;
        break;
    case GpsStatus.GPS_EVENT_STARTED:
        break;
    case GpsStatus.GPS_EVENT_STOPPED:
        mGpsFix = false;
        break;
    }
}
项目:terraingis    文件:LocationWorker.java   
public synchronized void onGpsStatusChanged(int event)
{
    if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS)
    {
        if (mLastGPSMillis != 0)
        {
            isGPSFix = (SystemClock.elapsedRealtime() - mLastGPSMillis) < 
                     getMinTime() * 2;
        }
    }
    else if (event == GpsStatus.GPS_EVENT_FIRST_FIX)
    {
        isGPSFix = true;
    }

    ProviderType previousType = currentProvider;
    currentProvider = isGPSFix ? ProviderType.GPS : ProviderType.BOTH;

    if(previousType != currentProvider)
    {
        switchProvider();
    }
}
项目:Mero-Bhada-Meter    文件:MapActivity.java   
public void onGpsStatusChanged(int event) {
    if (event == GpsStatus.GPS_EVENT_FIRST_FIX) {
        gpsFix = true;
        Location gps = locationManager
                .getLastKnownLocation(LocationManager.GPS_PROVIDER);
        gpsStartPoint = new GeoPoint(gps.getLatitude(),
                gps.getLongitude());
        if (tracking) {
            Toast results = Toast.makeText(MapActivity.this,
                    "Gpx Fix Available, Tracking Started",
                    Toast.LENGTH_SHORT);
            // center the Toast in the screen
            results.setGravity(Gravity.CENTER,
                    results.getXOffset() / 2, results.getYOffset() / 2);
            results.show(); // display the results
        }
    } // end if
}
项目:localcloud_fe    文件:JSONHelper.java   
/**
 * Converts GpsStatus into JSON.
 * @param gpsStatus Send a GpsStatus whenever the GPS fires
 * @return JSON representation of the satellite data
 */
public static String satelliteDataJSON(GpsStatus gpsStatus){

    final Calendar calendar = Calendar.getInstance();
    final JSONObject json = new JSONObject();

    try {
        json.put("provider", SATELLITE_PROVIDER);
        json.put("timestamp", calendar.getTimeInMillis());

        if(gpsStatus.getSatellites() != null) {
            int count = 0;
            final int timeToFirstFix = gpsStatus.getTimeToFirstFix();

            for(GpsSatellite sat: gpsStatus.getSatellites() ){
                final JSONObject satelliteInfo = new JSONObject();

                satelliteInfo.put("PRN", sat.getPrn());
                satelliteInfo.put("timeToFirstFix", timeToFirstFix);
                satelliteInfo.put("usedInFix", sat.usedInFix());
                satelliteInfo.put("azimuth", sat.getAzimuth());
                satelliteInfo.put("elevation", sat.getElevation());
                satelliteInfo.put("hasEphemeris", sat.hasEphemeris());
                satelliteInfo.put("hasAlmanac", sat.hasAlmanac());
                satelliteInfo.put("SNR", sat.getSnr());

                json.put(Integer.toString(count), satelliteInfo);

                count++;
            }
        }
    }
    catch (JSONException exc){
        logJSONException(exc);
    }

    return json.toString();
}
项目:localcloud_fe    文件:JSONHelper.java   
/**
 * Converts GpsStatus into JSON.
 * @param gpsStatus Send a GpsStatus whenever the GPS fires
 * @return JSON representation of the satellite data
 */
public static String satelliteDataJSON(GpsStatus gpsStatus){

    final Calendar calendar = Calendar.getInstance();
    final JSONObject json = new JSONObject();

    try {
        json.put("provider", SATELLITE_PROVIDER);
        json.put("timestamp", calendar.getTimeInMillis());

        if(gpsStatus.getSatellites() != null) {
            int count = 0;
            final int timeToFirstFix = gpsStatus.getTimeToFirstFix();

            for(GpsSatellite sat: gpsStatus.getSatellites() ){
                final JSONObject satelliteInfo = new JSONObject();

                satelliteInfo.put("PRN", sat.getPrn());
                satelliteInfo.put("timeToFirstFix", timeToFirstFix);
                satelliteInfo.put("usedInFix", sat.usedInFix());
                satelliteInfo.put("azimuth", sat.getAzimuth());
                satelliteInfo.put("elevation", sat.getElevation());
                satelliteInfo.put("hasEphemeris", sat.hasEphemeris());
                satelliteInfo.put("hasAlmanac", sat.hasAlmanac());
                satelliteInfo.put("SNR", sat.getSnr());

                json.put(Integer.toString(count), satelliteInfo);

                count++;
            }
        }
    }
    catch (JSONException exc){
        logJSONException(exc);
    }

    return json.toString();
}
项目:localcloud_fe    文件:JSONHelper.java   
/**
 * Converts GpsStatus into JSON.
 * @param gpsStatus Send a GpsStatus whenever the GPS fires
 * @return JSON representation of the satellite data
 */
public static String satelliteDataJSON(GpsStatus gpsStatus){

    final Calendar calendar = Calendar.getInstance();
    final JSONObject json = new JSONObject();

    try {
        json.put("provider", SATELLITE_PROVIDER);
        json.put("timestamp", calendar.getTimeInMillis());

        if(gpsStatus.getSatellites() != null) {
            int count = 0;
            final int timeToFirstFix = gpsStatus.getTimeToFirstFix();

            for(GpsSatellite sat: gpsStatus.getSatellites() ){
                final JSONObject satelliteInfo = new JSONObject();

                satelliteInfo.put("PRN", sat.getPrn());
                satelliteInfo.put("timeToFirstFix", timeToFirstFix);
                satelliteInfo.put("usedInFix", sat.usedInFix());
                satelliteInfo.put("azimuth", sat.getAzimuth());
                satelliteInfo.put("elevation", sat.getElevation());
                satelliteInfo.put("hasEphemeris", sat.hasEphemeris());
                satelliteInfo.put("hasAlmanac", sat.hasAlmanac());
                satelliteInfo.put("SNR", sat.getSnr());

                json.put(Integer.toString(count), satelliteInfo);

                count++;
            }
        }
    }
    catch (JSONException exc){
        logJSONException(exc);
    }

    return json.toString();
}
项目:cordova-plugin-advanced-geolocation    文件:JSONHelper.java   
/**
 * Converts GpsStatus into JSON.
 * @param gpsStatus Send a GpsStatus whenever the GPS fires
 * @return JSON representation of the satellite data
 */
public static String satelliteDataJSON(GpsStatus gpsStatus){

    final Calendar calendar = Calendar.getInstance();
    final JSONObject json = new JSONObject();

    try {
        json.put("provider", SATELLITE_PROVIDER);
        json.put("timestamp", calendar.getTimeInMillis());

        if(gpsStatus.getSatellites() != null) {
            int count = 0;
            final int timeToFirstFix = gpsStatus.getTimeToFirstFix();

            for(GpsSatellite sat: gpsStatus.getSatellites() ){
                final JSONObject satelliteInfo = new JSONObject();

                satelliteInfo.put("PRN", sat.getPrn());
                satelliteInfo.put("timeToFirstFix", timeToFirstFix);
                satelliteInfo.put("usedInFix", sat.usedInFix());
                satelliteInfo.put("azimuth", sat.getAzimuth());
                satelliteInfo.put("elevation", sat.getElevation());
                satelliteInfo.put("hasEphemeris", sat.hasEphemeris());
                satelliteInfo.put("hasAlmanac", sat.hasAlmanac());
                satelliteInfo.put("SNR", sat.getSnr());

                json.put(Integer.toString(count), satelliteInfo);

                count++;
            }
        }
    }
    catch (JSONException exc){
        logJSONException(exc);
    }

    return json.toString();
}
项目:truth-android    文件:GpsStatusSubject.java   
public static SubjectFactory<GpsStatusSubject, GpsStatus> type() {
  return new SubjectFactory<GpsStatusSubject, GpsStatus>() {
    @Override
    public GpsStatusSubject getSubject(FailureStrategy fs, GpsStatus that) {
      return new GpsStatusSubject(fs, that);
    }
  };
}
项目:RxTools    文件:ActivityLocation.java   
private void getLocation() {
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(mContext, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
        return;
    }
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 0, this);
    locationManager.addGpsStatusListener(new GpsStatus.Listener() {
        @Override
        public void onGpsStatusChanged(int event) {
            switch (event) {
                case GpsStatus.GPS_EVENT_STARTED:
                    System.out.println("GPS_EVENT_STARTED");
                    mGpsCount.setText("0");
                    break;
                case GpsStatus.GPS_EVENT_FIRST_FIX:
                    System.out.println("GPS_EVENT_FIRST_FIX");
                    break;
                case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
                    System.out.println("GPS_EVENT_SATELLITE_STATUS");
                    if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                        return;
                    }
                    GpsStatus gpsStatus = locationManager.getGpsStatus(null);
                    Iterable<GpsSatellite> gpsSatellites = gpsStatus.getSatellites();
                    int count = 0;
                    Iterator iterator = gpsSatellites.iterator();
                    while (iterator.hasNext()) {
                        count++;
                        iterator.next();
                    }
                    mGpsCount.setText(count + "");
                    break;
                case GpsStatus.GPS_EVENT_STOPPED:
                    System.out.println("GPS_EVENT_STOPPED");
                    //gpsState.setText("已停止定位");
                    break;
            }
        }
    });
}
项目:CameraDVR    文件:LocationMonitor.java   
@Override
public void onGpsStatusChanged(int arg0) {
    switch (arg0) {
    case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
        GpsStatus gpsStatus = mLocationManager.getGpsStatus(null);
        int usedinfix = 0;

        if (gpsStatus != null) {
            Iterator<GpsSatellite> satellites = gpsStatus
                    .getSatellites().iterator();

            if (satellites != null) {
                while (satellites.hasNext()) {
                    GpsSatellite satellite = satellites.next();

                    if (satellite.usedInFix()) {
                        usedinfix++;
                    }
                }
            }
        }
        mUsedInFix = usedinfix;
        if (mUsedInFix < 3) {
            updateGpsSpeed(-1);
        }
        break;

    case GpsStatus.GPS_EVENT_STARTED:
        break;
    case GpsStatus.GPS_EVENT_STOPPED:
        break;
    }
}
项目:openbmap    文件:GpsProvider.java   
@Override
public void onGpsStatusChanged(final int event) {
    int satCount = -1;

    switch (event) {
        case GpsStatus.GPS_EVENT_FIRST_FIX:
            satCount = 0;
            break;
        case GpsStatus.GPS_EVENT_STARTED:
            satCount = -1;
            break;
        case GpsStatus.GPS_EVENT_STOPPED:
            satCount = -1;
            break;
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
            // first of all we check if the time from the last used fix to the current fix is greater than the logging interval
            if ((event != GpsStatus.GPS_EVENT_SATELLITE_STATUS)
                    || (mLastGPSTimestamp + gpsLoggingInterval) < System.currentTimeMillis()) {
                mLastGPSTimestamp = System.currentTimeMillis(); // save the time of this fix

                final GpsStatus status = lmgr.getGpsStatus(null);

                // Count active satellites
                satCount = 0;
                for (@SuppressWarnings("unused") final GpsSatellite sat:status.getSatellites()) {
                    satCount++;
                }
            }
            break;
        default:
            break;
    }

    if (mListener != null) {
        mListener.onSatInfo(satCount);
    }

}