6

Piszę projekt biblioteki Androida. Próbuję zarejestrować się na mapie Google i uzyskać klucz API. Używam mojego certificate information, co oznacza, że ​​pobieram odcisk palca SHA1 z mojej biblioteki i otrzymuję klucz API.Projekt biblioteki Androida nie rejestruje się na Google Map

Problemem jest to, że muszę napisać tę informację w hosta aplikacji manifeście:

<meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="API_KEY" /> 

Ten Klucz API kostiumy moją bibliotekę, a nie aplikacji hosta. Gdy uruchamiam projekt biblioteki jako osobną aplikację, działa ona prawidłowo

Czy ktoś ma pomysł, jak mogę użyć mojego api_key jako projektu bibliotecznego?

Dzięki

Odpowiedz

5

Klucze API są zobowiązane do nazwy pakietu aplikacji i certyfikatu wykorzystywanego do jego podpisania (można użyć tego samego klucza dla wielu zastosowań, oczywiście, ale trzeba zarejestrować każdy indywidualnie w Developer Console).

Z tego, co wiem, nie ma opcji dostarczenia klucza w środowisku wykonawczym. Podczas gdy obecnie przestarzały interfejs API V1 zapewniał numer constructor supplying the key, nie ma go w wersji new API.

Dlatego jeśli chcesz dystrybuować projekt biblioteki "gotowy do użycia" z dołączonym kluczem API (twoim) dla dowolnej aplikacji, wygląda na to, że nie jest to możliwe. Musisz poinformować użytkowników o konieczności uzyskania klucza, a następnie umieścić wpis "com.google.android.maps.v2.API_KEY" w pliku AndroidManifest.xml.

+0

Jaki byłby dobry wynik? Pytanie o klucz API hosta podczas inicjowania pakietu? –

+0

@AdamMatan Nie sądzę, że to możliwe. Zmieniono nieco moją odpowiedź, aby to wyjaśnić. – matiash

+0

@matiash, jeśli aplikacja hosta zarejestruje się w konsoli programisty i doda wpis "com.google.android.maps.v2.API_KEY" do pliku AndroidManifest.xml. nasza biblioteka będzie mogła korzystać z map Google? – user3616237

1

1.-Włączyć działalność wykonującą MapView/FragmentMap do swojej biblioteki. Ponieważ działanie będzie w pakiecie zarejestrowanym w konsoli programisty, powinno działać. Musisz scalić manifesty.

2.-Nazwij główny pakiet aplikacji końcowej o tej samej nazwie głównego pakietu biblioteki. Ponieważ nazwa pakietu jest używana jako podpis klucza API, może działać. Musisz scalić manifesty.

Powiązane problemy