Проблема ежевики на сайте GPS слежения - PullRequest
0 голосов
/ 14 октября 2011

В моем приложении BB я пытаюсь получить местоположение, используя сайт ячейки.

Но всегда выдается исключение местоположения:

Timed out while waiting for Geolocation.m=0

Вот мой код

Criteria criteria = new Criteria();
criteria.setHorizontalAccuracy(Criteria.NO_REQUIREMENT);
criteria.setVerticalAccuracy(Criteria.NO_REQUIREMENT);
criteria.setCostAllowed(true);
criteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);
LocationProvider provider = LocationProvider.getInstance(criteria);
Location location = provider.getLocation(-1);
QualifiedCoordinates qualifiedCoordinates = location.getQualifiedCoordinates();
double latitude = qualifiedCoordinates.getLatitude();
double longitude = qualifiedCoordinates.getLongitude();

Но если я изменю параметры на

criteria.setHorizontalAccuracy(50);
criteria.setVerticalAccuracy(50);
criteria.setCostAllowed(true);
criteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_HIGH);

, вспомогательная система GPS работает нормально, и я получу правильное местоположение устройства.

Ответы [ 2 ]

0 голосов
/ 14 октября 2011

Как и в случае с vijay, вы можете зарегистрироваться для обновления местоположения.

Если вы все еще хотите использовать свое решение, вы должны быть уверены, что оно является многопоточным (и не только не для получения ANR, этоэто требование) - У вас есть SIM-карта с опцией Blackberry - Вы работаете как минимум на OS 5.0.0

0 голосов
/ 14 октября 2011
class LocationTracker{
private LocationProvider provider;
Criteria cr;
public LocationTracker() {
    cr= new Criteria();
    resetGPS();
}

public void resetGPS(){       
        try {
            provider = LocationProvider.getInstance(cr);
            if(provider != null) {
                    provider.setLocationListener(new MyLocationListener(),60, -1, -1);
            }
        }
        catch (LocationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }     
    }
}

class MyLocationListener implements LocationListener {
public void locationUpdated(LocationProvider provider, Location location){
    if(location != null && location.isValid()){               
        QualifiedCoordinates qc = location.getQualifiedCoordinates();
        try {
            LAT = location.getQualifiedCoordinates().getLatitude();
            System.out.println("=============================lattitude :: "+LAT);
            LONG= location.getQualifiedCoordinates().getLongitude();
            System.out.println("==================================longitude ::"+LONG);

        } 
        catch(Exception e){ 
           }
    }
}

public void providerStateChanged(LocationProvider provider, int newState){
     if(newState == LocationProvider.TEMPORARILY_UNAVAILABLE){
            provider.reset();
            provider.setLocationListener(null, 0, 0, -1);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...