Blackberry - изменить широту и долготу на устройстве для тестирования приложения - PullRequest
1 голос
/ 28 мая 2009

Я хочу проверить свое приложение на устройстве. Можно ли жестко кодировать значения широты и долготы где-то в настройках устройства, чтобы приложение считывало их вместо текущего местоположения?

Я хочу проверить свое приложение для других мест, отличных от моего текущего местоположения.

Ответы [ 2 ]

5 голосов
/ 08 июня 2009

В симуляторе BB вы можете перейти в Simulate> GPS Location. Нажмите кнопку Добавить и введите имя, широту и долготу. Нажмите «Сохранить», и симулятор начнет вводить ваше новое местоположение в приложения. Обратите внимание, что любое местоположение, отображаемое в раскрывающемся списке, будет отображаться симулятором.

4 голосов
/ 03 июня 2009

Внутренний макет GPS

Если у вас есть доступ к коду приложения, вы всегда можете создать реализацию макета для LocationProvider , чтобы он считывал данные о местоположении и скорости из файла или RecordStore и возвращал их как Местоположение что-то вроде

public class MockupLocationProvider extends LocationProvider {

    public MockupLocationProvider() {
        //prepare a file or RecordStore with locations here
    }

    public Location getLocation(int arg0) throws LocationException,
            InterruptedException {      
        //read data from file or RecordStore
        double latitude = 321;
        double longitude = 34;
        float altitude = 21;
        //create and return location
        Location result = new GPSLocation(latitude, 
            longitude, altitude);       
        return result;
    }

    public int getState() {
        // mockup location provider always available 
        return LocationProvider.AVAILABLE;
    }

    public void reset() {
        // your code        
    }

    public void setLocationListener(LocationListener listener, 
            int interval, int timeout, int maxAge) {
        // your code        
    }
}

и макет для вашего местоположения

public class GPSLocation extends Location {    
    double _latitude, _longitude;
    float _altitude, _horAcc = 0, _verAcc = 0, _speed;
    public GPSLocation(double lat, double lon, float alt) {
        init(lat, lon, alt);
    }    
    public GPSLocation(double lat, double lon, float alt, float spd) {
        init(lat, lon, alt);
        _speed = spd;
    }    
    private void init(double lat, double lon, float alt) {
        _latitude = lat;
        _longitude = lon;
        _altitude = alt;
    }    
    public QualifiedCoordinates getQualifiedCoordinates() {
        QualifiedCoordinates c = new QualifiedCoordinates(_latitude,
                _longitude, _altitude, _horAcc, _verAcc);
        return c;
    }    
    public float getSpeed() {
        return _speed;
    }    
    public String toString() {
        String result = "Lat:" + String.valueOf(_latitude) + "|Lon:"
                + String.valueOf(_longitude) + "|Alt:"
                + String.valueOf(_altitude);
        return result;
    }
}

Тогда где-то на экране

    MockupLocationProvider gpsProvider = new MockupLocationProvider();
    GPSLocation loc = (GPSLocation)gpsProvider.getLocation(0);
    add(new RichTextField(loc.toString())); 

Внешний макет GPS

Другой вариант - обычно макетировать сигналы GPS.
Шаги:

  • настроить устройство GPS-приемник для блютуз (например)
  • настроить некоторые Gps-сервер с открытым исходным кодом на вашем рабочем столе производить данные о местоположении над блютуз
  • изменить конфигурацию / код gps-сервера для макета данных о местоположении

Другие опции

Существует возможность неконтролируемого изменения GPS-данных о местоположении путем экранирования GPS-приемника некоторым радиоматериалом (например, алюминиевой фольгой или около того):)

...