Blackberry - измените широту и долготу на устройстве, чтобы протестировать приложение

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

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

2 ответа

Решение

Внутри 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 приемник для Bluetooth (например)
  • Установите на вашем рабочем столе GPS-сервер с открытым исходным кодом, чтобы получать данные о местоположении по Bluetooth.
  • изменить конфигурацию / код gps сервера для макета данных о местоположении

Другие опции

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

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

Другие вопросы по тегам