我想在设备上测试我的应用程序。是否可以在设备设置中的某处硬编码纬度和经度值,以便应用程序读取这些值而不是当前位置?
我想针对当前位置以外的不同位置测试我的应用程序。
我想在设备上测试我的应用程序。是否可以在设备设置中的某处硬编码纬度和经度值,以便应用程序读取这些值而不是当前位置?
我想针对当前位置以外的不同位置测试我的应用程序。
在 BB 模拟器中,您可以转到 Simulate > GPS Location。单击添加按钮并输入名称、纬度和经度。单击保存,模拟器将开始将您的新位置提供给应用程序。请注意,下拉菜单中显示的任何位置都是模拟器将报告的位置。
如果您有权访问您的应用程序代码,您始终可以为LocationProvider创建一个模型实现,以便它从文件或 RecordStore 读取位置和速度数据并将其作为Location返回,例如
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 数据:)