Hinweis
Damit du das Maps SDK für Android nutzen kannst, benötigst du ein Projekt mit einem Rechnungskonto. Außerdem muss das Maps SDK für Android aktiviert sein. Weitere Informationen findest du im englischsprachigen Artikel Get Started with Google Maps Platform.
API-Schlüssel erstellen
Der API-Schlüssel ist eine eindeutige Kennung, mit der Anfragen deines Projekts zu Nutzungs- und Abrechnungszwecken authentifiziert werden. Du musst mindestens einen API-Schlüssel mit deinem Projekt verknüpft haben.
So erstellst du einen API-Schlüssel:
-
Rufe die Seite APIs und Dienste > Anmeldedaten auf.
-
Klicke auf der Seite Anmeldedaten auf Anmeldedaten erstellen > API-Schlüssel.
Im Dialogfeld API-Schlüssel erstellt wird der neu erstellte API-Schlüssel angezeigt. -
Klicke auf Schließen.
Der neue API-Schlüssel wird auf der Seite Anmeldedaten unter API-Schlüssel aufgeführt.
Du musst den API-Schlüssel einschränken, bevor du ihn in der Produktionsumgebung verwendest.
API-Schlüssel in App einfügen
Der API-Schlüssel sollte nicht im Versionsverwaltungssystem eingecheckt werden. Wir empfehlen, ihn stattdessen in der Datei local.properties
im Stammverzeichnis des Projekts zu speichern.
Weitere Informationen zur Datei local.properties
findest du unter Gradle-Attributdateien.
Mit dem unten beschriebenen Gradle-Verfahren kann ein API-Schlüssel in der Datei local.properties
gespeichert und in der App sicher darauf verwiesen werden.
So fügst du deinen API-Schlüssel hinzu:
- Öffne die Datei
local.properties
im Verzeichnis auf Projektebene und füge ihr dann den unten angegebenen Code hinzu. Ersetze hierbeiYOUR_API_KEY
durch deinen eigenen API-Schlüssel.MAPS_API_KEY=YOUR_API_KEY
- Füge in der Datei
build.gradle
auf App-Ebene diesen Code imdefaultConfig
-Element ein. Dadurch kann Android Studio beim Build-Vorgang den Google Maps API-Schlüssel aus der Dateilocal.properties
lesen und anschließend diemapsApiKey
-Build-Variable in das Android-Manifest einfügen.android { defaultConfig { // ... // Set the properties within `local.properties` into a `Properties` class so that values // within `local.properties` (e.g. Maps API key) are accessible in this file. Properties properties = new Properties() if (rootProject.file("local.properties").exists()) { properties.load(rootProject.file("local.properties").newDataInputStream()) } // Inject the Maps API key into the manifest manifestPlaceholders = [ mapsApiKey : properties.getProperty("MAPS_API_KEY", "") ] } }
- Füge in der Datei
AndroidManifest.xml
folgenden Code als untergeordnetesapplication
-Element hinzu:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${mapsApiKey}" />
- Speichere die Dateien und synchronisiere dein Projekt mit Gradle.
Hinweis: Für den API-Schlüssel wird der oben angegebene Metadatenname com.google.android.geo.API_KEY
empfohlen. Ein Schlüssel mit diesem Namen kann zur Authentifizierung bei mehreren Google Maps-basierten APIs auf der Android-Plattform verwendet werden, einschließlich Maps SDK for Android. Aus Gründen der Abwärtskompatibilität unterstützt die API auch den Namen com.google.android.maps.v2.API_KEY
. Für diesen alten Namen wird nur die Authentifizierung bei Version 2 der Android Maps API unterstützt. In der Anwendung kann nur einer der Metadatennamen für den API-Schlüssel festgelegt werden. Falls beide angegeben werden, gibt die API eine Ausnahme aus.
API-Schlüssel einschränken
Wenn du API-Schlüssel einschränkst, wird deine App sicherer und dafür gesorgt, dass nur autorisierte Anfragen gesendet werden. Wir empfehlen dringend, die Einschränkungen für deine API-Schlüssel zu befolgen. Weitere Informationen findest du unter Best Practices für API-Schlüssel.
So schränkst du einen API-Schlüssel ein:
-
Rufe die Seite APIs und Dienste > Anmeldedaten auf.
- Wähle den API-Schlüssel aus, für den du eine Einschränkung festlegen möchtest. Die Seite mit den Eigenschaften des API-Schlüssels wird angezeigt.
- Nimm unter Schlüsseleinschränkungen folgende Einstellungen vor:
- App-Einschränkungen:
- Wähle die Option Android-Apps aus.
- Klicke auf + Paketname und Fingerabdruck hinzufügen.
- Gib den Paketnamen und den Fingerabdruck des SHA-1-Zertifikats ein. Beispiel:
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
Weitere Informationen dazu erhältst du unter Wo findest du den SHA-1-Fingerabdruck deiner App?. - API-Einschränkungen:
- Klicke auf Schlüssel einschränken.
- Wähle im Drop-down-Menü APIs auswählen die Option Maps SDK for Android aus.
Wenn das Maps SDK for Android nicht aufgeführt ist, musst du es aktivieren. - Klicke abschließend auf Speichern.
Wo findest du den SHA-1-Fingerabdruck deiner App?
Die Einschränkung des API-Schlüssels für Android basiert auf einer Kurzform des digitalen Zertifikats deiner App, auch bekannt als SHA-1-Fingerabdruck.
Zertifizierungsinformationen aus Android Studio abrufen
Wenn du entsprechend dem Startleitfaden für das Maps SDK for Android vorgehst, wird von Android Studio eine praktische Datei google_maps_api.xml
mit den Anmeldedaten deiner App erstellt.
Wähle eine der folgenden Möglichkeiten aus, um deinen API-Schlüssel aus Android Studio abzurufen:
- Schnell und einfach: Verwende den Link in der Datei
google_maps_api.xml
, die von Android Studio für dich erstellt wurde:- Kopiere den Link aus der Datei
google_maps_api.xml
und füge ihn in deinem Browser ein. Über den Link gelangst du zur Google Cloud Console, an die mithilfe von URL-Parametern die erforderlichen Informationen übergeben werden. So musst du weniger manuell eingeben. - Folge der Anleitung, um ein neues Projekt in der Google Cloud Console zu erstellen, oder wähle ein vorhandenes Projekt aus.
- Erstelle für dein Projekt einen API-Schlüssel mit Android-Einschränkung.
- Kopiere den generierten API-Schlüssel, kehre zu Android Studio zurück und füge den API-Schlüssel in das Element <string> in der Datei
google_maps_api.xml
ein.
- Kopiere den Link aus der Datei
- Ein etwas zeitaufwendigerer Weg: Verwende die Anmeldedaten in der Datei
google_maps_api.xml
, die von Android Studio für dich erstellt wurde:- Kopiere die Anmeldedaten aus der Datei
google_maps_api.xml
. - Rufe die Google Cloud Platform Console auf.
- Verwende die kopierten Anmeldedaten, um deine App einem vorhandenen API-Schlüssel hinzuzufügen oder um einen neuen API-Schlüssel zu erstellen.
- Kopiere die Anmeldedaten aus der Datei
Zertifikatinformationen selbst beschaffen
Wenn du beim Erstellen der App nicht dem Startleitfaden gefolgt bist, musst du dir den SHA-1-Fingerabdruck für dein Zertifikat selbst beschaffen. Stelle zuerst sicher, dass du das richtige Zertifikat verwendest. Unter Umständen hast du zwei Zertifikate:
- Debug-Zertifikat: Die Android SDK-Tools generieren dieses Zertifikat automatisch, wenn du ein Debug-Build ausführst. Verwende dieses Zertifikat nur bei Apps, die du testest. Veröffentliche keine Apps, die mit einem Debugzertifikat signiert sind. Das Debugzertifikat wird im Abschnitt zum Signieren im Debugmodus in der Dokumentation für Android-Entwickler näher beschrieben.
- Freigabezertifikat: Die Android SDK-Tools generieren dieses Zertifikat automatisch, wenn du ein Releasebuild ausführst. Du kannst dieses Zertifikat auch mithilfe des Programms
keytool
generieren. Verwende dieses Zertifikat, wenn du deine App veröffentlichst.
Befolge die Schritte unten, um den SHA-1-Fingerabdruck eines Zertifikats über das Programm keytool
mit dem Parameter -v
aufzurufen. Weitere Informationen zu Keytool findest du in der Oracle-Dokumentation.
Fingerabdruck des Debugzertifikats aufrufen
Suche nach deiner Debug-Schlüsselspeicherdatei. Der Dateiname ist
debug.keystore
. Die Datei wurde angelegt, als du dein Projekt zum ersten Mal erstellt hast. Standardmäßig befindet sich die Datei in demselben Verzeichnis wie deine AVD-Dateien (Android Virtual Device):- macOS und Linux:
~/.android/
- Windows Vista und Windows 7:
C:\Users\your_user_name\.android\
- macOS und Linux:
SHA-1-Fingerabdruck auflisten:
Öffne unter Linux oder macOS ein Terminalfenster und gib Folgendes ein:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
Führe unter Windows Vista und Windows 7 folgenden Befehl aus:
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
Die Ausgabe sollte ungefähr so aussehen:
Alias name: androiddebugkey Creation date: Jan 01, 2013 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
Fingerabdruck des Freigabezertifikats aufrufen
-
Suche nach der Schlüsselspeicherdatei deines Freigabezertifikats. Es gibt keinen Standardspeicherplatz oder -namen für den Schlüsselspeicher der Freigabe. Falls du beim Erstellen der App keine Version angibst, wird
.apk
vom Build nicht signiert. Du musst sie dann vor dem Veröffentlichen signieren. Für das Freigabezertifikat benötigst du auch den Zertifikatsalias und die Kennwörter für den Schlüsselspeicher und das Zertifikat. Du kannst die Aliasnamen für alle Schlüssel in einem Schlüsselspeicher auflisten, indem du Folgendes eingibst:keytool -list -keystore your_keystore_name
Ersetze
your_keystore_name
durch den vollständig qualifizierten Pfad und Namen des Schlüsselspeichers, einschließlich der Erweiterung.keystore
. Du wirst aufgefordert, das Passwort des Schlüsselspeichers einzugeben. Mithilfe vonkeytool
werden dann alle Aliasnamen im Schlüsselspeicher angezeigt. -
Gib Folgendes in einem Terminal oder bei einer Eingabeaufforderung ein:
keytool -list -v -keystore your_keystore_name -alias your_alias_name
Ersetze
your_keystore_name
durch den vollständig qualifizierten Pfad und Namen des Schlüsselspeichers, einschließlich der Erweiterung.keystore
. Ersetzeyour_alias_name
durch den Alias, den du dem Zertifikat beim Erstellen zugewiesen hast.
Die Ausgabe sollte ungefähr so aussehen:
Alias name: <alias_name> Creation date: Feb 02, 2013 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: 4cc9b300 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3
Die Zeile, die mit SHA1
beginnt, enthält den SHA-1-Fingerabdruck des Zertifikats. Der Fingerabdruck ist eine Abfolge aus 20 zweistelligen Hexadezimalzahlen, die durch Doppelpunkte getrennt sind.
Weitere Informationen zu digitalen Zertifikaten findest du in der Android-Anleitung zum Signieren von Apps.