Udostępnij za pośrednictwem


Uzyskiwanie klucza interfejsu API usługi Mapy Google

Aby korzystać z funkcji google Mapy w systemie Android, musisz zarejestrować się w celu uzyskania klucza interfejsu API Mapy w usłudze Google. Dopóki to nie zrobisz, zobaczysz tylko pustą siatkę zamiast mapy w aplikacjach. Musisz uzyskać klucz interfejsu API systemu Android Mapy Google Mapy w wersji 2 — klucze ze starszego klucza interfejsu API systemu Google Mapy Android v1 nie będą działać.

Uzyskanie klucza interfejsu API Mapy w wersji 2 obejmuje następujące kroki:

  1. Pobierz odcisk palca SHA-1 magazynu kluczy, który jest używany do podpisywania aplikacji.
  2. Utwórz projekt w konsoli interfejsów API Google.
  3. Uzyskiwanie klucza interfejsu API.

Uzyskiwanie odcisku palca klucza podpisywania

Aby zażądać klucza interfejsu API Mapy od firmy Google, musisz znać odcisk palca SHA-1 magazynu kluczy używany do podpisywania aplikacji. Zazwyczaj oznacza to, że należy określić odcisk palca SHA-1 dla magazynu kluczy debugowania, a następnie odcisk palca SHA-1 dla magazynu kluczy, który jest używany do podpisywania aplikacji do wydania.

Domyślnie magazyn kluczy używany do podpisywania wersji debugowania aplikacji platformy Xamarin.Android można znaleźć w następującej lokalizacji:

C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono dla systemu Android\debug.keystore

Informacje o magazynie kluczy są uzyskiwane przez uruchomienie keytool polecenia z zestawu JDK. To narzędzie zazwyczaj znajduje się w katalogu bin języka Java:

C:\Program Files\Android\jdk\microsoft_dist_openjdk_[VERSION]\bin\keytool.exe

Uruchom narzędzia keytool przy użyciu następującego polecenia (przy użyciu ścieżek plików pokazanych powyżej):

keytool -list -v -keystore [STORE FILENAME] -alias [KEY NAME] -storepass [STORE PASSWORD] -keypass [KEY PASSWORD]

Przykład debug.keystore

Dla domyślnego klucza debugowania (który jest automatycznie tworzony na potrzeby debugowania), użyj następującego polecenia:

keytool.exe -list -v -keystore "C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

Klucze produkcyjne

Podczas wdrażania aplikacji w sklepie Google Play musi być podpisana przy użyciu klucza prywatnego. Element keytool będzie musiał zostać uruchomiony przy użyciu szczegółów klucza prywatnego, a wynikowy odcisk palca SHA-1 użyty do utworzenia produkcyjnego klucza interfejsu API google Mapy. Pamiętaj, aby zaktualizować plik AndroidManifest.xml przy użyciu poprawnego klucza interfejsu API Mapy Google przed wdrożeniem.

Dane wyjściowe narzędzia Keytool

W oknie konsoli powinny zostać wyświetlone dane wyjściowe podobne do następujących:

Alias name: androiddebugkey
Creation date: Jan 01, 2016
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4aa9b300
Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
Certificate fingerprints:
    MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
    SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
    Signature algorithm name: SHA1withRSA
    Version: 3

W dalszej części tego przewodnika użyjesz odcisku palca SHA-1 (wymienionego po sha1).

Tworzenie projektu interfejsu API

Po pobraniu odcisku palca SHA-1 magazynu kluczy podpisywania należy utworzyć nowy projekt w konsoli interfejsów API Google (lub dodać usługę Google Mapy Interfejs API systemu Android w wersji 2 do istniejącego projektu).

  1. W przeglądarce przejdź do pulpitu nawigacyjnego interfejsu API konsoli i usług Google Developers, a następnie kliknij pozycję Wybierz projekt. Kliknij nazwę projektu lub utwórz nowy, klikając pozycję NOWY PROJEKT:

    Google Developer Console CREATE PROJECT button

  2. Jeśli utworzono nowy projekt, wprowadź nazwę projektu w wyświetlonym oknie dialogowym Nowy projekt . To okno dialogowe spowoduje utworzenie unikatowego identyfikatora projektu opartego na nazwie projektu. Następnie kliknij przycisk Utwórz , jak pokazano w tym przykładzie:

    New project is named XamarinMapsDemo

  3. Po minucie zostanie utworzony projekt i zostanie on przeniesiony na stronę Pulpit nawigacyjny projektu. W tym miejscu kliknij pozycję WŁĄCZ INTERFEJSY API I USŁUGI:

    Clicking Google Maps Android API in the Library section

  4. Na stronie Biblioteka interfejsów API kliknij pozycję Mapy SDK dla systemu Android. Na następnej stronie kliknij pozycję WŁĄCZ , aby włączyć usługę dla tego projektu:

    Clicking the ENABLE button in the Dashboard section

Na tym etapie projekt interfejsu API został utworzony, a interfejs API systemu Android w wersji 2 firmy Google Mapy został do niego dodany. Nie można jednak używać tego interfejsu API w projekcie do momentu utworzenia dla niego poświadczeń. W następnej sekcji wyjaśniono, jak utworzyć klucz interfejsu API i autoryzować aplikację platformy Xamarin.Android do korzystania z tego klucza.

Uzyskiwanie klucza interfejsu API

Po utworzeniu projektu interfejsu API konsoli dewelopera Google należy utworzyć klucz interfejsu API systemu Android. Aplikacje platformy Xamarin.Android muszą mieć klucz interfejsu API przed udzieleniem im dostępu do interfejsu API mapy systemu Android w wersji 2.

  1. Na wyświetlonej stronie zestawu SDK Mapy dla systemu Android (po kliknięciu przycisku WŁĄCZ w poprzednim kroku przejdź do karty Poświadczenia i kliknij przycisk Utwórz poświadczenia:

    Maps SDK for Android Credentials message

  2. Kliknij pozycję Klucz interfejsu API:

    Add credentials to your project dialog

  3. Po kliknięciu tego przycisku zostanie wygenerowany klucz interfejsu API. Następnie należy ograniczyć ten klucz, aby tylko aplikacja mogła wywoływać interfejsy API za pomocą tego klucza. Kliknij pozycję OGRANICZ KLUCZ:

    Clicking Restrict Key on the Credentials page

  4. Zmień pole Nazwa z klucza interfejsu API 1 na nazwę, która pomoże Zapamiętać, jaki klucz jest używany dla (Xamarin Mapy DemoKey jest używany w tym przykładzie). Następnie kliknij przycisk radiowy Aplikacje dla systemu Android:

    Selecting Android apps on the Credentials page

  5. Aby dodać odcisk palca SHA-1, kliknij pozycję + Dodaj nazwę pakietu i odcisk palca:

    Clicking Add package name and fingerprint

  6. Wprowadź nazwę pakietu aplikacji i wprowadź odcisk palca certyfikatu SHA-1 (uzyskany za pomocą keytool instrukcji opisanych wcześniej w tym przewodniku). W poniższym przykładzie wprowadzona jest nazwa XamarinMapsDemo pakietu, a następnie odcisk palca certyfikatu SHA-1 uzyskany z debug.keystore:

    Package name entered is com.xamarin.docs.android.map

  7. Należy pamiętać, że aby plik APK uzyskiwał dostęp do Mapy Google, należy dołączyć odciski palców SHA-1 i nazwy pakietów dla każdego magazynu kluczy (debugowanie i wydawanie), którego używasz do podpisywania pakietu APK. Jeśli na przykład używasz jednego komputera do debugowania i innego komputera do generowania wersji APK, należy dołączyć odcisk palca certyfikatu SHA-1 z magazynu kluczy debugowania pierwszego komputera i odcisk palca certyfikatu SHA-1 z magazynu kluczy wydania drugiego komputera. Kliknij pozycję + Dodaj nazwę pakietu i odcisk palca, aby dodać kolejny odcisk palca i nazwę pakietu, jak pokazano w tym przykładzie:

    Adding another fingerprint creates another SHA-1 certificate

  8. Kliknij przycisk Zapisz, aby zapisać zmiany. Następnie wrócisz do listy kluczy interfejsu API. Jeśli masz utworzone wcześniej inne klucze interfejsu API, zostaną one również wyświetlone tutaj. W tym przykładzie jest wyświetlany tylko jeden klucz interfejsu API (utworzony w poprzednich krokach):

    XamarinMapsDemoKey is shown in the API keys list

Połączenie projektu na rozliczane konto

Od 11 czerwca 2018 r. klucz interfejsu API nie będzie działać, jeśli projekt nie jest połączony z rozliczanym kontem (nawet jeśli usługa jest nadal bezpłatna dla aplikacji mobilnych).

  1. Kliknij przycisk menu hamburger i wybierz stronę Rozliczenia :

    Selecting the hamburger menu billing section

  2. Połącz projekt z kontem rozliczeniowym, klikając pozycję Połącz konto rozliczeniowe, a następnie pozycję UTWÓRZ KONTO ROZLICZENIOWE w wyświetlonym oknie podręcznym (jeśli nie masz konta, zostanie wyświetlony przewodnik tworzenia nowego):

    Link project to billing account

Dodawanie klucza do projektu

Na koniec dodaj ten klucz interfejsu API do pliku AndroidManifest.XML aplikacji Xamarin.Android. W poniższym przykładzie YOUR_API_KEY należy zastąpić klucz interfejsu API wygenerowany w poprzednich krokach:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionName="4.10" package="com.xamarin.docs.android.mapsandlocationdemo"
    android:versionCode="10">
...
  <application android:label="@string/app_name">
    <!-- Put your Google Maps V2 API Key here. -->
    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="YOUR_API_KEY" />
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
  </application>
</manifest>