Snabbstart: Skapa en Android-app med Azure Kartor

Den här artikeln visar hur du lägger till Azure-Kartor i en Android-app. Vi går igenom de grundläggande stegen:

  • Konfigurera utvecklingsmiljön.
  • Skapa ditt eget Azure Maps-konto.
  • Hämta din primära Azure Kartor nyckel som ska användas i appen.
  • Referera till Azure Kartor bibliotek från projektet.
  • Lägg till en Azure Kartor-kontroll i appen.

Förutsättningar

  1. Skapa ett Azure Kartor-konto genom att logga in på Azure Portal. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
  2. Skapa ett Azure Kartor konto
  3. Skaffa en primär prenumerationsnyckel, som även kallas primärnyckel eller prenumerationsnyckel. Mer information om autentisering i Azure Kartor finns i Hantera autentisering i Azure Kartor.
  4. Ladda Android Studio kostnadsfritt från Google.

Skapa ett Azure Maps-konto

Skapa ett nytt Azure Kartor konto med följande steg:

  1. Klicka på Skapa en resurs längst upp till vänster i Azure Portal.

  2. I rutan Sök på Marketplace skriver du Azure Kartor.

  3. Från Resultat väljer du Azure Kartor. Klicka på knappen Skapa som visas nedanför kartan.

  4. Ange följande värden på sidan Skapa Maps-konto:

    • Den Prenumeration som ska användas för det här kontot.
    • Namnet på Resursgrupp för kontot. Du kan välja att skapa ny eller använda befintlig resursgrupp.
    • Namn för ditt nya konto.
    • Prisnivån för det här kontot.
    • Läs licensen och sekretesspolicy och markera kryssrutan för att godkänna villkoren.
    • Klicka på knappen Skapa.

    Skapa Maps-konto i portalen

Hitta primärnyckeln för ditt konto

När ditt Kartor har skapats hämtar du den primärnyckel som gör att du kan köra frågor mot Kartor API:er.

  1. Öppna ditt Maps-konto i portalen.
  2. I avsnittet inställningar väljer du Autentisering.
  3. Kopiera Primärnyckel till Urklipp. Spara den lokalt för senare användning i den här självstudien.

Anteckning

Om du använder Azure-prenumerationsnyckeln i stället för Azure Kartor primärnyckel renderas inte kartan korrekt. Av säkerhetsskäl rekommenderar vi också att du roterar mellan dina primära och sekundära nycklar. Om du vill rotera nycklar uppdaterar du appen så att den använder den sekundära nyckeln, distribuerar och trycker sedan på cykel-/uppdateringsknappen bredvid den primära nyckeln för att generera en ny primärnyckel. Den gamla primärnyckeln inaktiveras. Mer information om nyckelrotation finns i Konfigurera Azure Key Vault med nyckelrotation och granskning

Hämta Azure-Kartor nyckel i Azure Portal

Skapa ett projekt i Android Studio

Skapa först ett nytt projekt med en tom aktivitet. Utför de här stegen för att skapa Android Studio projekt:

  1. Under Välj ditt projekt väljer du Telefon och Surfplatta. Programmet körs på den här formfaktorn.
  2. På fliken Telefon surfplatta väljer du Tom aktivitet och sedan Nästa.
  3. Under Konfigurera ditt projekt väljer du som minsta API 21: Android 5.0.0 (Lollipop) SDK. Det här är den tidigaste versionen som stöds av Azure Kartor Android SDK.
  4. Acceptera standardvärdet Activity Name och Layout Name välj Slutför.

Se dokumentationen Android Studio för mer hjälp med att installera Android Studio och skapa ett nytt projekt.

Skapa ett projekt i Android Studio

Konfigurera en virtuell enhet

Android Studio kan du konfigurera en virtuell Android-enhet på datorn. Det kan hjälpa dig att testa programmet under utvecklingen. Om du vill konfigurera en virtuell enhet väljer du ikonen Android Virtual Device (AVD) Manager i det övre högra hörnet på projektskärmen och väljer sedan Skapa virtuell enhet. Du kan också gå till AVD Manager genom att välja > Verktyg Android > AVD Manager i verktygsfältet. I kategorin Telefoner väljer du Nexus 5X och sedan Nästa.

Du kan lära dig mer om att konfigurera en AVD i Android Studio dokumentationen.

Android-Emulator

Installera Azure Kartor Android SDK

Nästa steg i att skapa ditt program är att installera Azure Kartor Android SDK. Utför de här stegen för att installera SDK:n:

  1. Öppna filen build.gradle på den översta nivån och lägg till följande kod i blockavsnittet för alla projekt , lagringsplatsen:

    maven {
        url "https://atlas.microsoft.com/sdk/android"
    }
    
  2. Uppdatera din app/build.gradle och lägg till följande kod i den:

    1. Kontrollera att projektets minSdkVersion är api 21 eller högre.

    2. Lägg till följande kod i Android-avsnittet:

      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_8
          targetCompatibility JavaVersion.VERSION_1_8
      }
      
    3. Uppdatera ditt beroendeblock och lägg till en ny implementeringsberoenderad för den senaste Azure Kartor Android SDK:

      implementation "com.azure.android:azure-maps-control:1.0.0"
      

      Anteckning

      Du kan ange versionsnumret till "0+" så att koden alltid pekar på den senaste versionen.

    4. Gå till Arkiv i verktygsfältet och klicka sedan på Synkronisera Project med Gradle Files.

  3. Lägg till ett kartfragment i huvudaktiviteten (res > > _ layout-main.xml):

    <com.azure.android.maps.control.MapControl
        android:id="@+id/mapcontrol"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
    
  1. I filen MainActivity.java måste du:

    • lägga till importer för Azure Kartor SDK
    • ange autentiseringsinformation Kartor Azure-server
    • hämta kartkontrollinstansen i metoden onCreate

    Om du anger autentiseringsinformationen för klassen globalt med metoderna eller blir den så att du inte behöver lägga till AzureMaps setSubscriptionKey setAadProperties autentiseringsinformation i varje vy.

    Kartkontrollen innehåller sina egna livscykelmetoder för att hantera Androids OpenGL-livscykel. Dessa livscykelmetoder måste anropas direkt från den innehållande aktiviteten. För att appen ska kunna anropa kartkontrollens livscykelmetoder korrekt måste du åsidosätta följande livscykelmetoder i den aktivitet som innehåller kartkontrollen. Och du måste anropa respektive kartkontrollmetod.

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

    Redigera filen MainActivity.java på följande sätt:

    package com.example.myapplication;
    
    import androidx.appcompat.app.AppCompatActivity;
    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 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);
    }}
    

    Anteckning

    När du har slutfört föregående steg kan du få varningar Android Studio om en del av koden. Lös dessa varningar genom att importera de klasser som refereras till i MainActivity.java . Du kan importera dessa klasser automatiskt genom att välja Alt + Enter ( på Option + Return en Mac).

  1. I filen MainActivity.kt måste du:

    • lägga till importer för Azure Kartor SDK
    • ange autentiseringsinformation Kartor Azure-server
    • hämta kartkontrollinstansen i metoden onCreate

    Om du anger autentiseringsinformationen för klassen globalt med metoderna eller blir den så att du inte behöver lägga till AzureMaps setSubscriptionKey setAadProperties autentiseringsinformation i varje vy.

    Kartkontrollen innehåller sina egna livscykelmetoder för att hantera Androids OpenGL-livscykel. Dessa livscykelmetoder måste anropas direkt från den innehållande aktiviteten. För att appen ska kunna anropa kartkontrollens livscykelmetoder korrekt måste du åsidosätta följande livscykelmetoder i den aktivitet som innehåller kartkontrollen. Och du måste anropa respektive kartkontrollmetod.

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

    Redigera filen MainActivity.kt på följande sätt:

    package com.example.myapplication;
    
    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 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)
        }
    }
    

    Anteckning

    När du har slutfört föregående steg kan du få varningar Android Studio om en del av koden. Lös dessa varningar genom att importera de klasser som refereras till i MainActivity.kt . Du kan importera dessa klasser automatiskt genom att välja Alt + Enter ( på Option + Return en Mac).

  1. Välj körningsknappen, som du ser i följande bild (eller tryck Control + R på en Mac) för att skapa ditt program.

    Klicka på Kör

Android Studio tar några sekunder att skapa programmet. När bygget är klart kan du testa programmet på den emulerade Android-enheten. Du bör se en karta som den här:

Azure Kartor i Android-program

Rensa resurser

Varning

Självstudierna i avsnittet Nästa steg beskriver hur du använder och konfigurerar Azure Kartor med ditt konto. Rensa inte resurserna som du skapar i den här snabbstarten om du planerar att fortsätta med självstudierna.

Om du inte planerar att fortsätta med självstudierna kan du vidta följande steg för att rensa resurserna:

  1. Stäng Android Studio och ta bort programmet som du skapade.
  2. Om du har testat programmet på en extern enhet avinstallerar du programmet från den enheten.

Om du inte planerar att fortsätta utveckla med Azure Kartor Android SDK:

  1. Gå till Azure Portal sidan. Välj Alla resurser på huvudportalsidan. Eller klicka på menyikonen i det övre vänstra hörnet. Välj Alla resurser.
  2. Klicka på ditt Azure Kartor konto. Klicka på Ta bort överst på sidan.
  3. Om du inte planerar att fortsätta utveckla Android-appar kan du avinstallera Android Studio.

Fler kodexempel finns i dessa guider:

Nästa steg

I den här snabbstarten skapade du ditt Azure Kartor konto och ett demoprogram. Ta en titt på följande självstudier för att lära dig mer om Azure Kartor: