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 din utvecklingsmiljö.
- Skapa ditt eget Azure Maps-konto.
- Hämta din primära Azure Kartor-nyckel som ska användas i appen.
- Referera till Azure Kartor-biblioteken från projektet.
- Lägg till en Azure Kartor-kontroll i appen.
Kommentar
Azure Kartor Android SDK-tillbakadragning
Azure Kartor Native SDK för Android är nu inaktuell och kommer att dras tillbaka den 3/31/25. För att undvika tjänststörningar migrerar du till Azure Kartor Web SDK senast 3/31/25. Mer information finns i migreringsguiden för Azure Kartor Android SDK.
Förutsättningar
En prenumeration till Microsoft Azure. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Android Studio. Om du inte har Android Studio kan du få det kostnadsfritt från Google.
Kommentar
Många av instruktionerna i den här snabbstarten skapades med Android Studio Arctic Fox (2020.3.1). Om du använder en annan version av Android Studio kan stegen som är specifika för Android Studio variera.
Skapa ett Azure Maps-konto
Skapa ett nytt Azure Kartor-konto med hjälp av följande steg:
I det övre vänstra hörnet i Azure-portalen väljer du Skapa en resurs.
I rutan Sök på Marketplace skriver du Azure Kartor och väljer sedan Azure Kartor i sökresultaten.
Markera knappen Skapa.
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. Välj Gen2.
- Läs villkoren och markera kryssrutan för att bekräfta att du har läst och godkänt licens- och sekretesspolicyn.
- Välj knappen Granska + skapa.
- När du har sett till att allt är korrekt på sidan Granska + skapa väljer du knappen Skapa .
Hämta prenumerationsnyckeln för ditt konto
När ditt Azure Kartor-konto har skapats hämtar du prenumerationsnyckeln som gör att du kan fråga Kartor API:er.
- Öppna ditt Azure Kartor-konto i portalen.
- I den vänstra rutan väljer du Autentisering.
- Kopiera primärnyckeln och spara den lokalt för att använda den senare i den här självstudien.
Kommentar
Av säkerhetsskäl rekommenderar vi 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.
Skapa ett projekt i Android Studio
Slutför följande steg för att skapa ett nytt projekt med en tom aktivitet i Android Studio:
Starta Android Studio och välj Nytt på Arkiv-menyn och sedan Nytt projekt...
På skärmen Nytt projekt väljer du Telefon och Surfplatta i listan Mallar till vänster på skärmen.
Välj Tom aktivitet i listan med mallar och sedan Nästa.
På skärmen Tom aktivitet anger du värden för följande fält:
- Namn. Ange Azure Kartor App.
- Paketnamn. Använd standardappen com.example.azuremapsapp.
- Spara plats. Använd standardvärdet eller välj en ny plats för att spara dina projektfiler. Undvik att använda blanksteg i sökvägen eller filnamnet på grund av potentiella problem med NDK-verktygen.
- Språk. Välj Kotlin eller Java.
- Minsta SDK. Välj
API 21: Android 5.0.0 (Lollipop)
som minsta SDK. Det är den tidigaste versionen som stöds av Azure Kartor Android SDK.
Välj Slutför för att skapa det nya projektet.
Mer hjälp med att installera Android Studio och skapa ett nytt projekt finns i Android Studio-dokumentationen .
Konfigurera en virtuell enhet
Med Android Studio kan du konfigurera en virtuell Android-enhet på datorn. Det kan hjälpa dig att testa ditt program under utvecklingen.
Så här konfigurerar du en virtuell Android-enhet (AVD):
- Välj AVD Manager på menyn Verktyg .
- Den virtuella Android-Enhetshanteraren visas. Välj Skapa virtuell enhet.
- I kategorin Telefon väljer du Nexus 5X och sedan Nästa.
Mer information om hur du konfigurerar en AVD finns i Skapa och hantera virtuella enheter i Android Studio-dokumentationen.
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:et:
Öppna filen settings.gradle för projektinställningar och lägg till följande kod i avsnittet lagringsplatser :
maven {url "https://atlas.microsoft.com/sdk/android"}
I samma filinställningar för projektinställningar.gradle ändrar du lagringsplatserMode till
PREFER_SETTINGS
:repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
Filen för projektinställningar bör nu visas på följande sätt:
Öppna projektets gradle.properties-fil och kontrollera att
android.useAndroidX
bådaandroid.enableJetifier
är inställda påtrue
.Om filen gradle.properties inte innehåller
android.useAndroidX
ochandroid.enableJetifier
lägger du till följande två rader i slutet av filen:android.useAndroidX=true android.enableJetifier=true
Öppna filen application build.gradle och gör följande:
Kontrollera att projektets minSdk är 21 eller högre.
Se till att din
compileOptions
iAndroid
avsnittet är följande:compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
Uppdatera ditt beroendeblock och lägg till ett nytt implementeringsberoende för den senaste Azure Kartor Android SDK:
implementation 'com.azure.android:azure-maps-control:1.+'
Välj Synkronisera projekt med Gradle-filer på menyn Arkiv .
Lägg till ett kartfragment i huvudaktiviteten:
<com.azure.android.maps.control.MapControl android:id="@+id/mapcontrol" android:layout_width="match_parent" android:layout_height="match_parent" />
Om du vill uppdatera huvudaktiviteten väljer du layouten app res > activity_main.xml i Project Navigator:>>
I filen MainActivity.java :
- Lägg till importer för Azure Kartor SDK.
- Ange autentiseringsinformation för Azure Kartor.
- Hämta kartkontrollinstansen i metoden onCreate .
Dricks
Genom att ange autentiseringsinformationen globalt i
AzureMaps
klassen med hjälp avsetSubscriptionKey
metoderna ellersetAadProperties
behöver du inte lägga till autentiseringsinformationen i varje vy.Kartkontrollen innehåller egna livscykelmetoder för att hantera Androids OpenGL-livscykel. Dessa livscykelmetoder måste anropas direkt från den innehållande aktiviteten. Om du vill anropa kartkontrollens livscykelmetoder korrekt åsidosätter du följande livscykelmetoder i aktiviteten som innehåller kartkontrollen och anropar sedan respektive kartkontrollmetod.
onCreate(Bundle)
onDestroy()
onLowMemory()
onPause()
onResume()
onSaveInstanceState(Bundle)
onStart()
onStop()
Redigera MainActivity.java-filen på följande sätt:
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); }}
I filen MainActivity.kt:
- lägga till importer för Azure Kartor SDK
- ange autentiseringsinformation för Azure Kartor
- hämta kartkontrollinstansen i metoden onCreate
Dricks
Genom att ange autentiseringsinformationen globalt i
AzureMaps
klassen med hjälp avsetSubscriptionKey
metoderna ellersetAadProperties
behöver du inte lägga till autentiseringsinformationen i varje vy.Kartkontrollen innehåller egna livscykelmetoder för att hantera Androids OpenGL-livscykel. Dessa livscykelmetoder måste anropas direkt från den innehållande aktiviteten. Om du vill anropa kartkontrollens livscykelmetoder korrekt åsidosätter du följande livscykelmetoder i aktiviteten 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.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) } }
Välj knappen Kör i verktygsfältet, som du ser i följande bild (eller tryck
Control
+R
på en Mac) för att skapa ditt program.
Det tar några sekunder att skapa programmet i Android Studio. När bygget är klart kan du testa programmet på den emulerade Android-enheten. Du bör se en karta som den här:
Dricks
Som standard läser Android in aktiviteten igen när orienteringen ändras eller tangentbordet är dolt. Detta resulterar i att karttillståndet återställs (läs in kartan igen som återställer vyn och läser in data till det ursprungliga tillståndet igen). Lägg till följande i mainfesten för att förhindra att detta inträffar: android:configChanges="orientation|keyboardHidden"
. Detta hindrar aktiviteten från att läsas in igen och anropar onConfigurationChanged()
i stället när orienteringen har ändrats eller tangentbordet är dolt.
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 gör du följande för att rensa resurserna:
- Stäng Android Studio och ta bort det program som du skapade.
- 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:
- Gå till Sidan i Azure-portalen. Välj Alla resurser på huvudportalsidan.
- Välj ditt Azure Kartor-konto. Välj Ta bort längst upp på sidan.
- Om du inte planerar att fortsätta utveckla Android-appar kan du avinstallera Android Studio.
Fler kodexempel finns i följande guider:
- Hantera autentisering i Azure Kartor
- Ändra kartformat i Android Maps
- Lägg till ett symbolskikt
- Lägga till ett linjeskikt
- Lägga till ett polygonskikt
Nästa steg
I den här snabbstarten skapade du ditt Azure Kartor-konto och skapade ett demoprogram. Ta en titt på följande självstudie för att lära dig mer om Azure Kartor: