7

Android 2.2 Emulator では、「geo fix」コマンドが正しく動作していないようです。エミュレーターは「OK」と応答onLocationChanged()し、プログラムで適切に呼び出されます。ただし、Locationオブジェクトは完全ではないようです。緯度と経度は問題なく登録されていますが、高度の読み取り値は含まれていません: をhasAltitude()返しますfalse

理由はありますか?

エミュレータ コマンドの例:

geo fix -74 40.75 500
geo fix -77 39 400.0

コードスニペット:

public void onLocationChanged(Location loc) {
    System.out.println("onLocationChanged Called");
    if (loc.hasAltitude()) {
        double newalt = loc.getAltitude();
        System.out.println("new altitude: " + newalt);
        gps[ALTITUDE] = newalt;
    } else {
        System.out.println("No altitude fix");
    }
    gps[LONG] = loc.getLongitude();
    System.out.println(gps[LONG]);
    gps[LAT] = loc.getLatitude();
    System.out.println(gps[LAT]);
}

サンプル出力:

onLocationChanged Called
No altitude fix
-74.012333333333333333
40.756666666666666667
onLocationChanged Called
No altitude fix
-77.012833333333333335
39.006499999999999996
4

1 に答える 1

1

これはエミュレータのバグであり、https://code.google.com/p/android/issues/detail?id=24809で報告されています。

于 2013-10-16T12:43:58.060 に答える