/ / Android Lokalizacja. Konwersja zgłaszająca wyjątek niezgodny z prawem - android, lokalizacja

Android Location.convert wyrzucając nielegalny argument wyjątek - android, lokalizacja

To zdanie rzuca IllegalArgumentException. Nadal nie mogę dowiedzieć się, co jest nie tak z tym formatem [+-]DDD:MM.MMMMM jak mówi dokumentacja.

double latitude = Location.convert("-19:59.646");

Odpowiedzi:

1 dla odpowiedzi № 1

Wygląda na to, że kod platformy Android dla Location.convert (współrzędna łańcucha) nie pozwala na małe wartości dziesiętne większe niż 59:

https://github.com/android/platform_frameworks_base/blob/master/location/java/android/location/Location.java#L255

Spróbuj użyć formatu FORMAT_SECONDS lub FORMAT_DEGREES zamiast tego, jak określono w dokumentacji interfejsu API lokalizacji:

http://developer.android.com/reference/android/location/Location.html

Na przykład Twój numer w FORMAT_SECONDS (DDD: MM: SS.SSSSS) wynosiłby -19: 59: 38,76.

Tak więc kod byłby:

double latitude = Location.convert("-19:59:38.76");

Sprawdziłem, czy działa to na Androidzie w formacie FORMAT_SECONDS.


0 dla odpowiedzi nr 2

Prawdopodobnie musisz dokładnie dopasować ten format, więc uzupełnij go zerami.

double latitude = Location.convert( "-019:59.64600" );