Další rozhraní API pro Android

Důležité

31. března 2025 je naplánované vyřazení z provozu. I když můžete dál používat Visual Studio App Center, dokud ho úplně vyřadíte, existuje několik doporučených alternativ, na které můžete zvážit migraci.

Přečtěte si další informace o časových osách a alternativách podpory.

Úprava úrovně protokolu

Podle App Centeru můžete řídit množství zpráv protokolu, které se zobrazí v LogCatu. AppCenter.setLogLevel() Pomocí rozhraní API povolte další protokolování při ladění. Úrovně protokolu odpovídají úrovním definovaným v android.util.Log. Ve výchozím nastavení je nastavená na ASSERT pro neladitelné aplikace a WARN pro laditelné aplikace. Úroveň protokolu můžete kdykoli nastavit.

Pokud chcete mít co nejvíce zpráv protokolu, použijte Log.Verbose.

AppCenter.setLogLevel(Log.VERBOSE);
AppCenter.setLogLevel(Log.VERBOSE)

Identifikace instalací

Sada App Center SDK vytvoří UUID pro každé zařízení po instalaci aplikace. Tento identifikátor zůstane stejný pro zařízení, když se aplikace aktualizuje, a nový se vygeneruje jenom v případě, že se aplikace znovu nainstaluje nebo uživatel ručně odstraní všechna data aplikace. Následující rozhraní API je užitečné pro účely ladění.

AppCenter.getInstallId();
AppCenter.getInstallId()

Toto rozhraní API je asynchronní. Další informace si o tom můžete přečíst v naší příručce k asynchronním rozhraním API app center .

Poznámka

Tuto metodu je možné použít pouze po AppCenter spuštění, vždy se vrátí null před spuštěním.

Identifikace uživatelů

Sada App Center SDK podporuje nastavení ID uživatele , které se používá k rozšíření zpráv o chybách. Použití této funkce:

  1. Nakonfigurujte sadu App Center SDK voláním AppCenter.start(...) , jak je popsáno v příručce Začínáme se sadou App Center SDK.
  2. V sadě SDK nastavte userID parametr pomocí následujícího kódu:
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")

Po nastavení ID uživatele můžete pomocí funkce vyhledávání v App Center vyhledat konkrétní zprávy o chybách pro ID. Další informace najdete v dokumentaci k vyhledávání app center.

Poznámka

Hodnota ID uživatele je omezená na 256 znaků. Zobrazí se se zprávami o chybách, ale nepoužije se pro agregaci nebo počty ovlivněných uživatelů. Pokud nastavíte ID uživatele vícekrát, použije se pouze poslední ID uživatele. Před spuštěním každé aplikace musíte id uživatele nastavit sami, protože tato hodnota není uložená v sadě SDK mezi spuštěními.

Zakázat všechny služby za běhu

Pokud chcete zakázat všechny služby App Center najednou, použijte rozhraní setEnabled() API. Pokud je sada SDK zakázaná, nepřesměruje do App Center žádné informace.

AppCenter.setEnabled(false);
AppCenter.setEnabled(false)

Pokud chcete znovu povolit všechny služby najednou, použijte stejné rozhraní API, ale předejte true ho jako parametr.

AppCenter.setEnabled(true);
AppCenter.setEnabled(true)

Stav se v úložišti zařízení během spouštění aplikací udržuje.

Toto rozhraní API je asynchronní. Další informace si o tom můžete přečíst v naší příručce k asynchronním rozhraním API app center .

Poznámka

Tuto metodu je možné použít pouze po AppCenter spuštění.

Zakázání síťových požadavků

V sadě App Center SDK jsou ve výchozím nastavení povolené síťové požadavky. Pokud chcete odesílat data, která sada App Center SDK shromažďuje uživatelem, můžete zakázat automatické odesílání dat.

AppCenter.setNetworkRequestsAllowed(false);
AppCenter.setNetworkRequestsAllowed(false)

V tomto případě sada App Center SDK dál shromažďuje data, ale budou odeslána pouze v případě, že budou povolené síťové požadavky.

AppCenter.setNetworkRequestsAllowed(true);
AppCenter.setNetworkRequestsAllowed(true)

Poznámka

Tato hodnota se zachová mezi zahájením.

Kdykoli můžete zkontrolovat, jestli je odesílání dat v sadě App Center SDK povolené nebo ne.

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

Poznámka

Hodnota uložená dříve v SharedPreferences se ignoruje, dokud AppCenter se nesstartuje. Vrátí poslední sadu hodnot pomocí setNetworkRequestsAllowed nebo true pokud se hodnota nezměnila před spuštěním AppCenter.

Změna stavu služby za běhu

Povolte nebo zakažte služby za běhu pomocí následujícího kódu:

Analytics.setEnabled(false);
Analytics.setEnabled(false)

Poznámka

Tuto metodu je možné použít pouze po Analytics spuštění.

Kontrola, jestli je povolený App Center

Můžete také zkontrolovat, jestli je App Center povolený nebo ne.

AppCenter.isEnabled();
AppCenter.isEnabled()

Toto rozhraní API je asynchronní. Další informace si o tom můžete přečíst v naší příručce k asynchronním rozhraním API app center .

Poznámka

Tuto metodu je možné použít pouze po AppCenter spuštění, vždy se vrátí false před spuštěním.

Kontrola verze sady App Center SDK za běhu

Můžete získat verzi sady App Center SDK, kterou právě používáte.

AppCenter.getSdkVersion();
AppCenter.getSdkVersion()

Velikost úložiště

Při použití sady App Center SDK se protokoly ukládají místně na zařízení. Velké protokoly můžou zabírat hodně místa, takže se můžete rozhodnout omezit velikost místní databáze. Je také užitečný ve spojení s rozhraními pause API a resume . Pokud očekáváte, že bude pozastaveno na dlouhou dobu, můžete k uložení více událostí použít větší velikost databáze.

Pomocí rozhraní setMaxStorageSize API můžete nastavit velikost místní databáze. Rozhraní API je asynchronní a zpětné volání se volá při spuštění služeb App Center. Z tohoto důvodu setMaxStorageSize musí být volána před voláním na AppCenter.start(...). Rozhraní API můžete volat pouze jednou.

// Use 20 MB for storage.
AppCenter.setMaxStorageSize(20 * 1024 * 1024L).thenAccept(new AppCenterConsumer<Boolean>() {

    @Override
    public void accept(Boolean success) {
        // The success parameter is false when the size can't be honored.
    }
});
AppCenter.start("{Your App Secret}", Analytics.class);
// Use 20 MB for storage.
AppCenter.setMaxStorageSize(20 * 1024 * 1024).thenAccept {
    // The success parameter (it) is false when the size can't be honored.
}

AppCenter.start(application, "{Your App Secret}", Analytics::class.java)

Pokud nenastavíte maximální velikost úložiště, sada SDK použije výchozí maximální velikost 10 MB. Minimální velikost, kterou můžete nastavit, je 20 kB.

Poznámka

Skutečná maximální velikost úložiště může být vyšší než vámi zvolená hodnota. SQLite zaokrouhlí velikost na další násobek velikosti stránky. Sada App Center SDK používá velikost stránky 4 kB.

Poznámka

Protokoly starší než 25 dnů se zahodí.

Přidání distribučních úložišť

Ve výchozím nastavení fungují aktualizace v aplikacích nainstalovaných z definovaného seznamu obchodů. Pokud chcete aplikaci distribuovat prostřednictvím obchodů, které nejsou zahrnuté v předdefinovaném seznamu obchodů, můžete před spuštěním App Center přidat potřebný instalační program balíčků pomocí následujícího rozhraní API:

    Set<String> stores = new HashSet<String>();
    stores.add("com.store1.packageinstaller");
    stores.add("com.store2.packageinstaller");
    Distribute.addStores(stores);

Poznámka

Nepřidávejte obchody jako Google Play, abyste se vyhnuli jakýmkoli omezením.

Neúspěšná volání rozhraní API

Zpětné volání může selhat z mnoha důvodů.

  • Zadaná velikost je neplatná hodnota (menší než 20 kB nebo větší než 140 TB).
  • Aktuální velikost databáze je větší než zadaná maximální velikost.
  • Rozhraní API už bylo volána. Pro každý proces ho můžete nakonfigurovat pouze jednou.
  • Rozhraní API bylo volána po AppCenter.start(...).

Při řešení potíží s konfigurací můžete zkontrolovat upozornění a chyby v konzole pomocí AppCenter značky protokolu.

Asynchronní rozhraní API v sadě Android SDK

Asynchronní rozhraní API vrací AppCenterFuture objekt místo přímého vrácení výsledku.

Můžete buď volat get() budoucí objekt a synchronně čekat na výsledek, nebo zadat zpětné volání, jako je toto, a vyplnit odpovídající návratové typy při volání rozhraní API:

AppCenterFuture<{ReturnType}> future = {AnyAsyncApi}();
future.thenAccept(new AppCenterConsumer<{ReturnType}>() {

    @Override
    public void accept({ReturnType} result) {

        // do something with result, this is called back in UI thread.
    }
});
val future = {AnyAsyncApi}()
future.thenAccept(object : AppCenterConsumer<{ReturnType}> {
    override fun accept(t: {ReturnType}?) {
        // do something with result, this is called back in UI thread.
    }
})

Pokud se chcete vyhnout blokování vlákna uživatelského rozhraní, které způsobuje zpomalení aplikace, zvažte použití thenAccept se zpětným voláním po celou dobu.

V pracovním vlákně můžete volat {AnyAsyncApi}().get().

Příklad zpětného volání:

AppCenter.isEnabled().thenAccept(new AppCenterConsumer<Boolean>() {

    @Override
    public void accept(Boolean enabled) {
        Log.d("MyApp", "AppCenter.isEnabled=" + enabled);
    }
});
AppCenter.isEnabled().thenAccept { enabled -> 
    Log.d("MyApp", "AppCenter.isEnabled=$enabled")
}

Synchronní příklad:

boolean enabled = AppCenter.isEnabled().get();
val enabled = AppCenter.isEnabled().get()