4

このコードは、MapActivityのonCreateブロックで使用されます

lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER))
        {
            Toast.makeText(this,
                    "Por favor, habilita el GPS antes de usar esta opción",
                    Toast.LENGTH_SHORT).show();
            finish();
        }
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
        Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        doYourMapMagicBaby(loc);

何があっても、locは常にnullを返します。とにかく、GPSで更新を登録すると、logcatは私の位置を正しく記録します。

08-24 09:21:18.479: D/libloc(260): Latitude:  40.4399979 (intermediate)
08-24 09:21:57.500: D/libloc(260): Longitude: -3.6700022

そのため、onLocationChanged()メソッドを介して実行したいことを実装できると思いました。運もありません。

public void onLocationChanged(Location location)
{
    if (location != null)
    {
        System.out.println("La localizacion es: (lon: "
                + location.getLongitude() + ", lat: "
                + location.getLatitude() + ")");
        doYourMapMagicBaby(location);
    }
    else
    {
        System.out.println("La location es nula");
    }

}

私は何が間違っているのですか?

4

1 に答える 1

0

プロバイダーが現在無効になっている場合は null が返されるため、プロバイダーが現在有効になっているかどうかを確認してください。 http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation(java.lang.String )

于 2012-08-24T07:25:51.470 に答える