2013-04-17 18 views
10

Składnik mapy Google (com.google.android.gms.maps.GoogleMap) umożliwia renderowanie niestandardowych kafelków (OpenStreetMap lub innych). Te kafelki mogą znajdować się na urządzeniu i dostępne w trybie offline, co robię, rozbudowując TileProvider. Rozwiązanie to w połączeniu z:Używanie Androida Google Maps API v2 jako przeglądarki kafelków offline: czy to możliwe?

mMap.setMapType(GoogleMap.MAP_TYPE_NONE); 

ja nie wyciągając żadnych danych z serwerów Google map i składnik można zasadnie oczekiwać, aby pracować bez połączenia z internetem. (tutaj podkreślić, że Nie próbuję buforować dane Google;. Pracuję z płytek offline, niezależnie od serwerów map Google)

myślałem, wszystko było w porządku, aż zdałem sobie sprawę, że komponent mapa nie będzie działać jeśli, , gdy zostanie wykonany po raz pierwszy, urządzenie jest w trybie offline. W takich przypadkach otrzymuję komunikat:

nie udało się wczytać mapy. nie można było skontaktować się z serwerem google

Wyobrażam sobie, że powodem tego są klucze API Google, które wymagają mojej aplikacji do uwierzytelnienia, aby dany komponent mógł zostać uruchomiony.

Czy ktoś może potwierdzić to jest poprawna? Naprawdę chciałbym się upewnić, że pod warunkiem, że komponent zostanie wykonany raz online, to będzie działać poprawnie. Muszę się upewnić, że nie ma problemów z limitem czasu, które wymagałyby ponownego uwierzytelnienia komponentu w późniejszym czasie i które w zasadzie sprawiłoby, że moja aplikacja byłaby bezużyteczna. Wymagałoby to przejścia do innego komponentu (takiego jak system operacyjny Android).

Każde światło na to byłoby bardzo mile widziane. Nawet wskazanie na kanał, przez który mogłem mieć nadzieję na odpowiedź od deweloperów google byłoby przydatne.

Dzięki

+0

„Nawet czym zwrócił się do kanału, przez który nie mogłem nadzieję uzyskać odpowiedź od twórców google byłoby przydatne” - http://code.google.com/p/gmaps-api-issues/issues/list – CommonsWare

+0

Dzięki za komentarz. Kwestie, które mi wskazywano, były również użyteczne. – guibar

+0

Znajdź lepsze rozwiązanie? Występuję w tym samym problemie. Przesyłam moją aplikację na telefony, które mogą nigdy nie mieć dostępu do Internetu. Wydaje się absurdalne, że muszę zweryfikować klucz API, jeśli nie zamierzam korzystać z map. – lostintranslation

Odpowiedz

8

Począwszy od 3.0.27 z usługi Google Play APK to jest stała i jest wymagany serwer należy się kontaktować tylko raz. Za każdym razem zobaczysz błąd logcat, ale zadziała.

Więcej informacji tutaj: http://code.google.com/p/gmaps-api-issues/issues/detail?id=4817

i tutaj: http://code.google.com/p/gmaps-api-issues/issues/detail?id=5017

+1

Dziękuję za tę przydatną odpowiedź. Nadal mam wątpliwości, po przeczytaniu problemów, które wskazałeś. Mówią: "To powinno być naprawione najnowszą aktualizacją pakietu APK usług Google Play (3.0.27). Wciąż jest wymagane połączenie internetowe po pierwszym załadowaniu aplikacji, ale nie ma już problemu z późniejszym otwarcie aplikacji i korzystanie z mapy, gdy nie ma połączenia. " Przez "pierwszy załadowany", czy to znaczy, że po raz pierwszy jest uruchamiany, czy wystarczy zainstalować go za pomocą połączenia wystarczy? W moim przypadku wydaje się konieczne uruchomienie aplikacji raz. – guibar

+1

Po raz pierwszy wymagane jest uruchomienie z połączeniem internetowym. –

+0

Są na to sposoby, że pracownicy Google mogą to poprawić: 1) nie wymuszając weryfikacji, która byłaby przydatna podczas korzystania z MAP_TYPE_NONE 2) Usługi Google Play APK może zakradać się do instalowanych aplikacji i gdy znajdzie taki, który korzysta z map lub innego API, zweryfikuj klucz API zaraz po instalacji - to jest, gdy zwykle masz połączenie z Internetem. Może wyślij taką prośbę o funkcję w problemach z biblioteką gmaps-api? –

Powiązane problemy