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. Нажмите кнопку Добавить и введите имя, широту и долготу. Нажмите "Сохранить", и симулятор начнет вводить ваше новое местоположение в приложения. Обратите внимание, что любое местоположение, отображаемое в раскрывающемся списке, будет отображаться симулятором.