1

デバイスでアプリをテストしたい。緯度と経度の値をデバイス設定のどこかにハードコーディングして、アプリが現在の場所ではなくそれらを読み取るようにすることは可能ですか?

現在の場所以外のさまざまな場所でアプリをテストしたい。

4

2 に答える 2

5

BBシミュレーターでは、[シミュレーション]>[GPS位置]に移動できます。[追加]ボタンをクリックして、名前、緯度、経度を入力します。[保存]をクリックすると、シミュレーターが新しい場所をアプリにフィードし始めます。ドロップダウンに表示される場所は、シミュレーターによって報告される場所であることに注意してください。

于 2009-06-08T16:36:04.970 に答える
4

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信号をモックアップすることです。
手順は次のとおりです。

  • Bluetooth用にデバイスのGPSレシーバーを構成します(例)
  • デスクトップにいくつかのオープンソースGPSサーバーをセットアップして、Bluetooth経由で位置データを生成します
  • GPSサーバーの構成/コードをモックアップロケーションデータに変更します

別のオプション

いくつかの無線材料(アルミニウム箔など)でgps受信機をシールドすることにより、位置gpsデータの制御されていない変更が行われる可能性があります:)

于 2009-06-03T06:15:36.853 に答える