Quickstart: Een Android-app maken met Azure Kaarten

In dit artikel wordt beschreven hoe u Azure Maps kunt toevoegen aan een Android-app. U wordt door de volgende basisstappen geleid:

  • De ontwikkelomgeving instellen.
  • Uw eigen Azure Maps-account maken.
  • De primaire Azure Maps-sleutel voor gebruik in de app ophalen.
  • De Azure Maps-bibliotheken vanuit het project raadplegen.
  • Een Azure Maps-besturingselement aan de app toevoegen.

Notitie

Buitengebruikstelling van Azure Kaarten Android SDK

De Azure Kaarten Native SDK voor Android is nu afgeschaft en wordt buiten gebruik gesteld op 3-31-25. Om serviceonderbrekingen te voorkomen, migreert u tegen 3-31-25 naar de Azure Kaarten Web SDK. Zie de migratiehandleiding voor Azure Kaarten Android SDK voor meer informatie.

Vereisten

  1. Een abonnement op Microsoft Azure. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

  2. Android Studio. Als u Geen Android Studio hebt, kunt u deze gratis downloaden van Google.

Notitie

Veel van de instructies in deze quickstart zijn gemaakt met Android Studio Arctic Fox (2020.3.1). Als u een andere versie van Android Studio gebruikt, kunnen de stappen die specifiek zijn voor Android Studio variƫren.

Een Azure Maps-account maken

Maak een nieuw Azure Kaarten-account met behulp van de volgende stappen:

  1. Selecteer in de linkerbovenhoek van Azure Portal de optie Een resource maken.

  2. Typ Azure Kaarten in het vak Marketplace doorzoeken en selecteer vervolgens Azure Kaarten in de zoekresultaten.

  3. Selecteer de knop Maken.

  4. Voer de volgende waarden in op de pagina Azure Kaarten-account maken:

    • Het Abonnement dat u wilt gebruiken voor dit account.
    • De naam van de Resourcegroep voor dit account. U kunt kiezen om een Nieuwe of Bestaande resourcegroep te gebruiken.
    • De Naam van uw nieuwe account.
    • De Prijscategorie voor dit account. Selecteer Gen2.
    • Lees de voorwaarden en schakel het selectievakje in om te bevestigen dat u de licentie en privacyverklaring hebt gelezen en ermee akkoord gaat.
    • Selecteer de knop Controleren en maken.
    • Zodra u ervoor hebt gezorgd dat alles juist is op de pagina Beoordelen en maken , selecteert u de knop Maken .

    Een schermopname van het deelvenster Kaarten-account maken in Azure Portal.

De abonnementssleutel voor uw account ophalen

Zodra uw Azure Kaarten-account is gemaakt, haalt u de abonnementssleutel op waarmee u een query kunt uitvoeren op de Kaarten API's.

  1. Open uw Azure Kaarten-account in de portal.
  2. Selecteer Verificatie in het linkerdeelvenster.
  3. Kopieer de primaire sleutel en sla deze lokaal op om later in deze zelfstudie te gebruiken.

Notitie

Voor beveiligingsdoeleinden wordt aanbevolen dat u tussen uw primaire en secundaire sleutels draait. Als u sleutels wilt roteren, werkt u de app bij om de secundaire sleutel te gebruiken. Vervolgens implementeert u en drukt u op de knop voor cyclus/vernieuwen naast de primaire sleutel om een nieuwe primaire sleutel te genereren. De oude primaire sleutel wordt uitgeschakeld. Zie Azure Key Vault instellen met sleutelrotatie en controle voor meer informatie over sleutelrotatie.

Schermopname van uw Azure Kaarten-abonnementssleutel in Azure Portal.

Een project maken in Android Studio

Voer de volgende stappen uit om een nieuw project te maken met een lege activiteit in Android Studio:

  1. Start Android Studio en selecteer Nieuw in het menu Bestand en vervolgens Nieuw project...

  2. Selecteer in het scherm Nieuw project Telefoon en Tablet in de lijst Sjablonen aan de linkerkant van het scherm.

    Een schermopname van het scherm Nieuw project in Android Studio.

  3. Selecteer Lege activiteit in de lijst met sjablonen en vervolgens Volgende.

    Een schermopname van het scherm Een lege activiteit maken in Android Studio.

  4. Voer in het scherm Lege activiteit waarden in voor de volgende velden:

    • Name. Voer Azure Kaarten App in.
    • Pakketnaam. Gebruik de standaard com.example.azuremapsapp.
    • Locatie opslaan. Gebruik de standaardinstelling of selecteer een nieuwe locatie om uw projectbestanden op te slaan. Vermijd het gebruik van spaties in het pad of de bestandsnaam vanwege mogelijke problemen met de NDK-hulpprogramma's.
    • Taal. Selecteer Kotlin of Java.
    • Minimale SDK. Selecteer API 21: Android 5.0.0 (Lollipop) deze optie als de minimum-SDK. Dit is de vroegste versie die wordt ondersteund door de Azure Kaarten Android SDK.
  5. Selecteer Voltooien om uw nieuwe project te maken.

Raadpleeg de Android Studio documentation (Android Studio-documentatie) voor meer informatie over het installeren van Android Studio en het maken van een nieuw project.

Een virtueel apparaat instellen

Met Android Studio kunt u een virtueel Android-apparaat op uw computer instellen. Dit kan u helpen bij het testen van uw toepassing tijdens de ontwikkeling.

Een virtueel Android-apparaat (AVD) instellen:

  1. Selecteer AVD Manager in het menu Extra .
  2. De virtuele Android-Apparaatbeheer wordt weergegeven. Selecteer Virtueel apparaat maken.
  3. In de categorie Telefoons selecteert u Nexus 5X en vervolgens Volgende.

Zie voor meer informatie over het instellen van een AVD virtuele apparaten maken en beheren in de Android Studio-documentatie.

Een schermopname van het scherm Hardware selecteren in Android Virtual Apparaatbeheer bij het maken van een nieuw virtueel apparaat.

De Azure Maps Android SDK installeren

De volgende stap bij het bouwen van uw toepassing betreft het installeren van de Azure Maps Android SDK. Volg deze stappen om de SDK te installeren:

  1. Open het projectinstellingenbestand settings.gradle en voeg de volgende code toe aan de sectie opslagplaatsen :

    maven {url "https://atlas.microsoft.com/sdk/android"}
    
  2. Wijzig opslagplaatsenMode in hetzelfde projectinstellingenbestand settings.gradle in PREFER_SETTINGS:

    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    

    Het bestand met projectinstellingen moet nu als volgt worden weergegeven:

    Een schermopname van het projectinstellingenbestand in Android Studio.

  3. Open het bestand gradle.properties van het project, controleer of android.useAndroidX en android.enableJetifier beide zijn ingesteld op true.

    Als het bestand gradle.properties niet is opgenomen android.useAndroidX en android.enableJetifiervoegt u de volgende twee regels toe aan het einde van het bestand:

    android.useAndroidX=true
    android.enableJetifier=true
    
  4. Open het bestand build.gradle van de toepassing en ga als volgt te werk:

    1. Controleer of de minSdk van uw project 21 of hoger is.

    2. Zorg ervoor dat uw compileOptions in de Android sectie als volgt is:

      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_8
          targetCompatibility JavaVersion.VERSION_1_8
      }
      
    3. Werk uw afhankelijkhedenblok bij en voeg een nieuwe implementatieafhankelijkheid toe voor de nieuwste Azure Kaarten Android SDK:

      implementation 'com.azure.android:azure-maps-control:1.+'
      
    4. Selecteer Project synchroniseren met Gradle Files in het menu Bestand .

    Een schermopname van het dot gradle-bestand van de toepassing bouwen in Android Studio.

  5. Voeg een kaartfragment toe aan de hoofdactiviteit:

    <com.azure.android.maps.control.MapControl
        android:id="@+id/mapcontrol"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
    

    Als u de hoofdactiviteit wilt bijwerken, selecteert u de indeling van de app-formaat >>> activity_main.xml in de Project-navigator:

    Een schermopname van het activity_main.xml-bestand in het deelvenster Projectnavigator in Android Studio.

  1. In het bestand MainActivity.java :

    • Importeerbewerkingen voor de Azure Kaarten SDK toevoegen.
    • Stel uw Azure Kaarten-verificatiegegevens in.
    • Haal het kaartbeheerexemplaren op in de onCreate-methode .

    Tip

    Door de verificatiegegevens globaal in de AzureMaps klasse in te stellen met behulp van de setSubscriptionKey of setAadProperties methoden, hoeft u uw verificatiegegevens niet toe te voegen in elke weergave.

    Het kaartbesturingselement bevat eigen levenscyclusmethoden voor het beheren van de OpenGL-levenscyclus van Android. Deze levenscyclusmethoden moeten rechtstreeks vanuit de opgenomen activiteit worden aangeroepen. Als u de levenscyclusmethoden van het kaartbeheer correct wilt aanroepen, overschrijft u de volgende levenscyclusmethoden in de activiteit die het kaartbeheer bevat en roept u vervolgens de respectieve kaartbeheermethode aan.

    • onCreate(Bundle)
    • onDestroy()
    • onLowMemory()
    • onPause()
    • onResume()
    • onSaveInstanceState(Bundle)
    • onStart()
    • onStop()

    Bewerk het bestand MainActivity.java als volgt:

    package com.example.azuremapsapp;
    
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import com.azure.android.maps.control.AzureMaps;
    import com.azure.android.maps.control.MapControl;
    import com.azure.android.maps.control.layer.SymbolLayer;
    import com.azure.android.maps.control.options.MapStyle;
    import com.azure.android.maps.control.source.DataSource;
    
    public class MainActivity extends AppCompatActivity {
    
    static {
        AzureMaps.setSubscriptionKey("<Your-Azure-Maps-Primary-Subscription-Key>");
    
        //Alternatively use Azure Active Directory authenticate.
        //AzureMaps.setAadProperties("<Your-AAD-clientId>", "<Your-AAD-appId>", "<Your-AAD-tenant>");
    }
    
    MapControl mapControl;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        mapControl = findViewById(R.id.mapcontrol);
    
        mapControl.onCreate(savedInstanceState);
    
        //Wait until the map resources are ready.
        mapControl.onReady(map -> {
    
            //Add your post map load code here.
    
        });
    }
    
    @Override
    public void onResume() {
        super.onResume();
        mapControl.onResume();
    }
    
    @Override
    protected void onStart(){
        super.onStart();
        mapControl.onStart();
    }
    
    @Override
    public void onPause() {
        super.onPause();
        mapControl.onPause();
    }
    
    @Override
    public void onStop() {
        super.onStop();
        mapControl.onStop();
    }
    
    @Override
    public void onLowMemory() {
        super.onLowMemory();
        mapControl.onLowMemory();
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mapControl.onDestroy();
    }
    
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mapControl.onSaveInstanceState(outState);
    }}
    
  1. In het bestand MainActivity.kt :

    • imports voor de Azure Maps SDK toevoegen
    • de Azure Maps-verificatiegegevens instellen
    • het exemplaar van het kaartbesturingselement ophalen in de methode onCreate

    Tip

    Door de verificatiegegevens globaal in de AzureMaps klasse in te stellen met behulp van de setSubscriptionKey of setAadProperties methoden, hoeft u uw verificatiegegevens niet toe te voegen in elke weergave.

    Het kaartbesturingselement bevat eigen levenscyclusmethoden voor het beheren van de OpenGL-levenscyclus van Android. Deze levenscyclusmethoden moeten rechtstreeks vanuit de opgenomen activiteit worden aangeroepen. Als u de levenscyclusmethoden van het kaartbeheer correct wilt aanroepen, overschrijft u de volgende levenscyclusmethoden in de activiteit die het kaartbeheer bevat. En u dient de desbetreffende kaartbeheermethode aan te roepen.

    • onCreate(Bundle)
    • onDestroy()
    • onLowMemory()
    • onPause()
    • onResume()
    • onSaveInstanceState(Bundle)
    • onStart()
    • onStop()

    Bewerk het bestand MainActivity.kt als volgt:

    package com.example.azuremapsapp;
    
    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import com.azure.android.maps.control.AzureMap
    import com.azure.android.maps.control.AzureMaps
    import com.azure.android.maps.control.MapControl
    import com.azure.android.maps.control.events.OnReady
    
    class MainActivity : AppCompatActivity() {
    
        companion object {
            init {
                AzureMaps.setSubscriptionKey("<Your-Azure-Maps-Primary-Subscription-Key>");
    
                //Alternatively use Azure Active Directory authenticate.
                //AzureMaps.setAadProperties("<Your-AAD-clientId>", "<Your-AAD-appId>", "<Your-AAD-tenant>");
            }
        }
    
        var mapControl: MapControl? = null
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            mapControl = findViewById(R.id.mapcontrol)
    
            mapControl?.onCreate(savedInstanceState)
    
            //Wait until the map resources are ready.
            mapControl?.onReady(OnReady { map: AzureMap -> })
        }
    
        public override fun onStart() {
            super.onStart()
            mapControl?.onStart()
        }
    
        public override fun onResume() {
            super.onResume()
            mapControl?.onResume()
        }
    
        public override fun onPause() {
            mapControl?.onPause()
            super.onPause()
        }
    
        public override fun onStop() {
            mapControl?.onStop()
            super.onStop()
        }
    
        override fun onLowMemory() {
            mapControl?.onLowMemory()
            super.onLowMemory()
        }
    
        override fun onDestroy() {
            mapControl?.onDestroy()
            super.onDestroy()
        }
    
        override fun onSaveInstanceState(outState: Bundle) {
            super.onSaveInstanceState(outState)
            mapControl?.onSaveInstanceState(outState)
        }
    }
    
  1. Selecteer de knop Uitvoeren op de werkbalk, zoals wordt weergegeven in de volgende afbeelding (of druk Control + R op een Mac) om uw toepassing te bouwen.

    Een schermopname van de knop Uitvoeren in Android Studio.

Het duurt enkele seconden voordat Android Studio de toepassing heeft gebouwd. Nadat de build is voltooid, kunt u de toepassing testen in het geƫmuleerde Android-apparaat. U krijgt een kaart te zien zoals deze:

Een schermopname van Azure Kaarten in een Android-toepassing.

Tip

Standaard laadt Android de activiteit opnieuw wanneer de afdrukstand verandert of het toetsenbord is verborgen. Dit resulteert in het opnieuw instellen van de kaartstatus (laad de kaart opnieuw, waardoor de weergave opnieuw wordt ingesteld en gegevens opnieuw worden geladen naar de beginstatus). Als u wilt voorkomen dat dit gebeurt, voegt u het volgende toe aan het mainfest: android:configChanges="orientation|keyboardHidden". Hierdoor wordt voorkomen dat de activiteit opnieuw wordt geladen en in plaats daarvan wordt aangeroepen onConfigurationChanged() wanneer de afdrukstand is gewijzigd of het toetsenbord verborgen is.

Resources opschonen

Waarschuwing

In de zelfstudies in de sectie Volgende stappen vindt u gedetailleerde informatie over het gebruik en de configuratie van Azure Maps met uw account. Als u wilt doorgaan met de zelfstudies, verwijder de resources die u in deze quickstart hebt gemaakt dan niet.

Als u niet van plan bent om door te gaan naar de zelfstudies, voert u deze stappen uit voor het opschonen van de resources:

  1. Sluit Android Studio en verwijder de toepassing die u hebt gemaakt.
  2. Als u de toepassing op een extern apparaat hebt getest, verwijdert u de toepassing van dat apparaat.

Ga als volgt te werk als u niet wilt door gaan met ontwikkelen met de Azure Maps Android SDK:

  1. Navigeer naar de Azure-portalpagina. Selecteer Alle resources op de hoofdpagina van de portal.
  2. Selecteer uw Azure Kaarten-account. Selecteer Verwijderen bovenaan de pagina.
  3. Als u niet wilt doorgaan met ontwikkelen van Android-apps, kunt u desgewenst Android Studio verwijderen.

Zie de volgende handleidingen voor meer codevoorbeelden:

Volgende stappen

In deze quickstart hebt u een Azure Maps-account en een demo-toepassing gemaakt. Bekijk de volgende zelfstudie voor meer informatie over Azure Kaarten: