Rychlý start: Vytvoření aplikace pro Android pomocí Azure Mapy

V tomto článku se dozvíte, jak přidat Azure Mapy do aplikace pro Android. Provede vás těmito základními kroky:

  • Nastavte vývojové prostředí.
  • Vytvořte si vlastní účet Azure Mapy.
  • Získejte primární klíč Mapy Azure, který se má použít v aplikaci.
  • Odkazujte na knihovny Azure Mapy z projektu.
  • Přidejte do aplikace ovládací prvek Azure Mapy.

Poznámka:

Vyřazení sady Azure Mapy Android SDK

Sada Azure Mapy Native SDK pro Android je teď zastaralá a bude vyřazena 31. 31. 25. Pokud se chcete vyhnout přerušení služeb, proveďte migraci do sady Azure Mapy Web SDK do 31. 31. 25. Další informace najdete v průvodci migrací sady Azure Mapy Android SDK.

Požadavky

  1. Předplatné služby Microsoft Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

  2. Android Studio. Pokud android Studio nemáte, můžete ho zdarma získat od Googlu.

Poznámka:

Mnoho pokynů v tomto rychlém startu bylo vytvořeno pomocí Android Studio Arctic Fox (2020.3.1). Pokud používáte jinou verzi Android Studia, můžou se kroky specifické pro Android Studio lišit.

Vytvoření účtu Azure Maps

Pomocí následujícího postupu vytvořte nový účet Azure Mapy:

  1. V levém horním rohu webu Azure Portal vyberte Vytvořit prostředek.

  2. Do pole Hledat na Marketplace zadejte Azure Mapy a pak ve výsledcích hledání vyberte Azure Mapy.

  3. Vyberte tlačítko Vytvořit.

  4. Na stránce Vytvořit účet Maps zadejte následující hodnoty:

    • Předplatné, které chcete pro tento účet použít.
    • Název skupiny prostředků pro tento účet. Můžete zvolit možnost Vytvořit novou nebo Použít existující skupinu prostředků.
    • Název vašeho nového účtu.
    • Cenová úroveň pro tento účet. Vyberte Gen2.
    • Přečtěte si podmínky a zaškrtněte políčko, abyste potvrdili, že jste si přečetli a souhlasíte s licenčním prohlášením a prohlášením o zásadách ochrany osobních údajů.
    • Vyberte tlačítko Zkontrolovat a vytvořit.
    • Jakmile ověříte, že je všechno na stránce Zkontrolovat a vytvořit správné, vyberte tlačítko Vytvořit.

    Snímek obrazovky znázorňující podokno Vytvořit Mapy účtu na webu Azure Portal

Získání klíče předplatného pro váš účet

Po úspěšném vytvoření účtu Azure Mapy načtěte klíč předplatného, který vám umožní dotazovat se na Mapy rozhraní API.

  1. Na portálu otevřete svůj účet Azure Mapy.
  2. V levém podokně vyberte Ověřování.
  3. Zkopírujte primární klíč a uložte ho místně, abyste ho mohli použít později v tomto kurzu.

Poznámka:

Pro účely zabezpečení se doporučuje otáčet mezi primárními a sekundárními klíči. Pokud chcete klíče otočit, aktualizujte aplikaci tak, aby používala sekundární klíč, nasadíte ho a pak stisknete tlačítko cyklu nebo aktualizace vedle primárního klíče a vygenerujete nový primární klíč. Starý primární klíč bude zakázán. Další informace o obměně klíčů najdete v tématu Nastavení služby Azure Key Vault s obměnou klíčem a auditování.

Snímek obrazovky znázorňující klíč předplatného Azure Mapy na webu Azure Portal

Vytvoření projektu v Android Studiu

Provedením následujících kroků vytvořte nový projekt s prázdnou aktivitou v Android Studiu:

  1. Spusťte Android Studio a v nabídce Soubor vyberte Nový a pak Nový projekt...

  2. Na obrazovce Nový projekt vyberte v seznamu Šablony na levé straně obrazovky Telefon a Tablet.

    Snímek obrazovky s novým projektem v Android Studiu

  3. V seznamu šablon vyberte Prázdnou aktivitu a pak vyberte Další.

    Snímek obrazovky znázorňující obrazovku Vytvořit prázdnou aktivitu v Android Studiu

  4. Na obrazovce Prázdná aktivita zadejte hodnoty pro následující pole:

    • Název. Zadejte Azure Mapy App.
    • Název balíčku. Použijte výchozí com.example.azuremapsapp.
    • Umístění pro uložení K uložení souborů projektu použijte výchozí nebo vyberte nové umístění. Nepoužívejte mezery v cestě nebo názvu souboru kvůli potenciálním problémům s nástroji sady NDK.
    • Jazyk. Vyberte Kotlin nebo Javu.
    • Minimální sada SDK. Vyberte API 21: Android 5.0.0 (Lollipop) jako minimální sadu SDK. Jedná se o nejstarší verzi podporovanou sadou Azure Mapy Android SDK.
  5. Vyberte Dokončit a vytvořte nový projekt.

Další nápovědu k instalaci Android Studia a vytvoření nového projektu najdete v dokumentaci k Android Studiu.

Nastavení virtuálního zařízení

Android Studio umožňuje nastavit na počítači virtuální zařízení s Androidem. To vám může pomoct při testování aplikace během vývoje.

Nastavení virtuálního zařízení s Androidem (AVD):

  1. V nabídce Nástroje vyberte SprávceAVD.
  2. Zobrazí se virtuální Správce zařízení Androidu. Vyberte Vytvořit virtuální zařízení.
  3. V kategorii Telefon s vyberte Nexus 5X a pak vyberte Další.

Další informace o nastavení AVD najdete v tématu Vytvoření a správa virtuálních zařízení v dokumentaci k Android Studiu.

Snímek obrazovky znázorňující obrazovku Vybrat hardware ve virtuálním Správce zařízení Androidu při vytváření nového virtuálního zařízení

Instalace sady Azure Mapy Android SDK

Dalším krokem při sestavování aplikace je instalace sady Azure Mapy Android SDK. Pokud chcete nainstalovat sadu SDK, proveďte následující kroky:

  1. Otevřete soubor nastavení projektu settings.gradle a do oddílu úložišť přidejte následující kód:

    maven {url "https://atlas.microsoft.com/sdk/android"}
    
  2. Ve stejném souboru nastavení projektu settings.gradle změňte úložištěMode na PREFER_SETTINGS:

    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    

    Soubor nastavení projektu by se teď měl zobrazit takto:

    Snímek obrazovky se souborem nastavení projektu v Android Studiu

  3. Otevřete soubor gradle.properties projektu, ověřte, zda android.useAndroidX jsou oba android.enableJetifier nastavené na true .

    Pokud soubor gradle.properties neobsahuje android.useAndroidX a android.enableJetifierpřidejte na konec souboru další dva řádky:

    android.useAndroidX=true
    android.enableJetifier=true
    
  4. Otevřete soubor build.gradle aplikace a postupujte takto:

    1. Ověřte, že je minSdk projektu 21 nebo vyšší.

    2. Ujistěte se, že je v compileOptions oddílu Android následující:

      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_8
          targetCompatibility JavaVersion.VERSION_1_8
      }
      
    3. Aktualizujte blok závislostí a přidejte novou závislost implementace pro nejnovější sadu Azure Mapy Android SDK:

      implementation 'com.azure.android:azure-maps-control:1.+'
      
    4. V nabídce Soubor vyberte Synchronizovat projekt se soubory Gradle.

    Snímek obrazovky znázorňující soubor dot gradle v aplikaci Android Studio

  5. Přidejte fragment mapy do hlavní aktivity:

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

    Pokud chcete aktualizovat hlavní aktivitu, vyberte v navigátoru Projectu rozložení >aplikace > res > activity_main.xml:

    Snímek obrazovky zobrazující soubor activity_main.xml v podokně Navigátor projektu v Android Studiu

  1. V souboru MainActivity.java:

    • Přidání importů pro sadu Azure Mapy SDK
    • Nastavte informace o ověřování azure Mapy.
    • Získejte instanci ovládacího prvku mapování v metodě onCreate .

    Tip

    Nastavením ověřovacích informací globálně ve AzureMaps třídě pomocí setSubscriptionKey metod nebo setAadProperties metod nebudete muset do každého zobrazení přidávat ověřovací informace.

    Ovládací prvek mapy obsahuje své vlastní metody životního cyklu pro správu životního cyklu OpenGL Androidu. Tyto metody životního cyklu musí být volána přímo z obsahující aktivity. Chcete-li správně volat metody životního cyklu ovládacího prvku mapování, přepište následující metody životního cyklu v aktivitě, která obsahuje ovládací prvek mapování, a pak zavolejte příslušnou metodu řízení mapování.

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

    Upravte soubor MainActivity.java následujícím způsobem:

    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. V souboru MainActivity.kt:

    • přidání importů pro sadu Azure Mapy SDK
    • nastavení ověřovacích informací o službě Azure Mapy
    • get the map control instance in the onCreate method

    Tip

    Nastavením ověřovacích informací globálně ve AzureMaps třídě pomocí setSubscriptionKey metod nebo setAadProperties metod nebudete muset do každého zobrazení přidávat ověřovací informace.

    Ovládací prvek mapy obsahuje své vlastní metody životního cyklu pro správu životního cyklu OpenGL Androidu. Tyto metody životního cyklu musí být volána přímo z obsahující aktivity. Chcete-li správně volat metody životního cyklu ovládacího prvku mapování, přepište následující metody životního cyklu v aktivitě, která obsahuje ovládací prvek mapování. A musíte volat příslušnou metodu ovládacího prvku mapování.

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

    Upravte soubor MainActivity.kt následujícím způsobem:

    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. Na panelu nástrojů vyberte tlačítko Spustit, jak je znázorněno na následujícím obrázku (nebo stiskněte Control + R na Macu) a sestavte aplikaci.

    Snímek obrazovky s tlačítkem Spustit v Android Studiu

Sestavení aplikace pro Android Studio trvá několik sekund. Po dokončení sestavení můžete aplikaci otestovat na emulovaném zařízení s Androidem. Měla by se zobrazit mapa podobná této:

Snímek obrazovky znázorňující azure Mapy v aplikaci pro Android

Tip

Ve výchozím nastavení Android znovu načte aktivitu, když se změní orientace nebo je skrytá klávesnice. Výsledkem je resetování stavu mapy (znovu načtěte mapu, která resetuje zobrazení a znovu načte data do počátečního stavu). Chcete-li zabránit tomu, aby se to stalo, přidejte do mainfestu následující: android:configChanges="orientation|keyboardHidden". Tím se aktivita znovu načte a místo toho se zavolá onConfigurationChanged() , když se orientace změnila nebo je klávesnice skrytá.

Vyčištění prostředků

Upozorňující

Kurzy uvedené v části Další kroky podrobně uvádějí, jak používat a konfigurovat Azure Mapy s vaším účtem. Pokud chcete pokračovat v kurzech, nevyčistíte prostředky vytvořené v tomto rychlém startu.

Pokud nechcete pokračovat v kurzech, proveďte tyto kroky a vyčistíte prostředky:

  1. Zavřete Android Studio a odstraňte aplikaci, kterou jste vytvořili.
  2. Pokud jste aplikaci otestovali na externím zařízení, odinstalujte aplikaci z daného zařízení.

Pokud nechcete pokračovat ve vývoji pomocí sady Azure Mapy Android SDK:

  1. Přejděte na stránku webu Azure Portal. Na hlavní stránce portálu vyberte Všechny prostředky .
  2. Vyberte svůj účet Azure Mapy. V horní části stránky vyberte Odstranit.
  3. Pokud nechcete pokračovat v vývoji aplikací pro Android, odinstalujte Android Studio.

Další příklady kódu najdete v těchto příručkách:

Další kroky

V tomto rychlém startu jste vytvořili účet Azure Mapy a vytvořili ukázkovou aplikaci. Další informace o Azure Mapy najdete v následujícím kurzu: