Udostępnij za pośrednictwem


Inne interfejsy API systemu Android

Ważne

Program Visual Studio App Center został wycofany 31 marca 2025 r. z wyjątkiem funkcji analizy i diagnostyki, które będą nadal obsługiwane do 30 czerwca 2026 r. Dowiedz się więcej.

Dostosuj poziom logu

Możesz kontrolować ilość komunikatów dziennika przez centrum aplikacji, które są wyświetlane w usłudze LogCat. Użyj interfejsu AppCenter.setLogLevel() API, aby włączyć dodatkowe rejestrowanie podczas debugowania. Poziomy logów odpowiadają poziomom zdefiniowanym w pliku android.util.Log. Domyślnie jest ona ustawiana na ASSERT wartość dla aplikacji nie debugowalnych i WARN dla aplikacji debugowalnych. Poziom rejestrowania można ustawić w dowolnym momencie.

Aby mieć jak najwięcej komunikatów dziennika, użyj polecenia Log.Verbose.

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

Identyfikowanie instalacji

SDK App Center tworzy identyfikator UUID dla każdego urządzenia po zainstalowaniu aplikacji. Ten identyfikator pozostaje taki sam dla urządzenia, gdy aplikacja zostanie zaktualizowana, a nowy jest generowany tylko wtedy, gdy aplikacja zostanie ponownie zainstalowana lub użytkownik ręcznie usunie wszystkie dane aplikacji. Poniższy interfejs API jest przydatny do celów debugowania.

AppCenter.getInstallId();
AppCenter.getInstallId()

Ten interfejs API jest asynchroniczny. Więcej informacji na ten temat można przeczytać w naszym przewodniku asynchronicznych interfejsów API centrum aplikacji .

Uwaga / Notatka

Ta metoda musi być używana tylko po uruchomieniu AppCenter. Zawsze zwróci null przed rozpoczęciem.

Identyfikowanie użytkowników

Zestaw SDK centrum aplikacji obsługuje ustawianie identyfikatora użytkownika używanego do rozszerzania raportów o awarie. Aby użyć tej funkcji:

  1. Skonfiguruj zestaw SDK App Center, wywołując AppCenter.start(...) metodę zgodnie z przewodnikiem Wprowadzenie do zestawu SDK App Center.
  2. Ustaw element userID w zestawie SDK przy użyciu następującego kodu:
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")

Po ustawieniu identyfikatora użytkownika możesz użyć funkcji wyszukiwania centrum aplikacji, aby wyszukać określone raporty o awarii dla identyfikatora. Dowiedz się więcej w dokumentacji wyszukiwania w usłudze App Center.

Uwaga / Notatka

Wartość identyfikatora użytkownika jest ograniczona do 256 znaków. Zostanie wyświetlony z raportami awarii, ale nie będzie używany do agregacji ani liczenia liczby użytkowników, których dotyczy. W przypadku ustawienia identyfikatora użytkownika wiele razy będzie używany tylko ostatni identyfikator użytkownika. Należy ustawić identyfikator użytkownika przed uruchomieniem każdej aplikacji, ponieważ ta wartość nie jest przechowywana przez zestaw SDK między uruchomieniem.

Wyłącz wszystkie usługi w czasie wykonywania

Jeśli chcesz jednocześnie wyłączyć wszystkie usługi App Center, użyj interfejsu setEnabled() API. Po wyłączeniu zestaw SDK nie będzie przekazywać żadnych informacji do Centrum aplikacji.

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

Aby ponownie włączyć wszystkie usługi, użyj tego samego interfejsu API, ale przekaż true jako parametr.

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

Stan jest utrwalany w magazynie urządzenia w ramach uruchamiania aplikacji.

Ten interfejs API jest asynchroniczny. Więcej informacji na ten temat można przeczytać w naszym przewodniku asynchronicznych interfejsów API centrum aplikacji .

Uwaga / Notatka

Ta metoda musi być używana tylko po uruchomieniu AppCenter.

Nie zezwalaj na żądania sieciowe

W zestawie SDK centrum aplikacji żądania sieciowe są domyślnie dozwolone. Jeśli chcesz wysłać dane, które SDK App Center zbiera na podstawie zgody użytkownika, możesz zablokować automatyczne wysyłanie danych.

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

W takim przypadku zestaw SDK centrum aplikacji będzie nadal zbierać dane, ale będzie wysyłany tylko wtedy, gdy żądania sieciowe będą dozwolone.

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

Uwaga / Notatka

Ta wartość jest zachowywana między startami.

W dowolnym momencie możesz sprawdzić, czy wysyłanie danych w zestawie SDK Centrum Aplikacji jest dozwolone, czy nie.

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

Uwaga / Notatka

Wartość zapisana wcześniej w SharedPreferences jest ignorowana, dopóki AppCenter nie zostanie uruchomione. Zwróci ostatni zestaw wartości przy użyciu setNetworkRequestsAllowed lub true jeśli wartość nie została zmieniona przed uruchomieniem programu AppCenter.

Zmienianie stanu usługi w trakcie działania

Włącz lub wyłącz usługi w czasie wykonywania za pomocą następującego kodu:

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

Uwaga / Notatka

Ta metoda musi być używana tylko po uruchomieniu Analytics.

Sprawdzanie, czy centrum aplikacji jest włączone

Możesz również sprawdzić, czy centrum aplikacji jest włączone, czy nie.

AppCenter.isEnabled();
AppCenter.isEnabled()

Ten interfejs API jest asynchroniczny. Więcej informacji na ten temat można przeczytać w naszym przewodniku asynchronicznych interfejsów API centrum aplikacji .

Uwaga / Notatka

Ta metoda musi być używana tylko po uruchomieniu AppCenter. Zawsze zwróci false przed rozpoczęciem.

Sprawdzanie wersji zestawu SDK App Center podczas działania

Możesz uzyskać wersję zestawu SDK centrum aplikacji, której obecnie używasz.

AppCenter.getSdkVersion();
AppCenter.getSdkVersion()

Rozmiar magazynu

W przypadku korzystania z zestawu SDK centrum aplikacji dzienniki są przechowywane lokalnie na urządzeniu. Duże dzienniki mogą zająć dużo miejsca, więc możesz ograniczyć rozmiar lokalnej bazy danych. Jest to również przydatne w połączeniu z interfejsami API pause i resume. Jeśli spodziewasz się wstrzymania przez długi czas, możesz użyć większego rozmiaru bazy danych do przechowywania większej liczby zdarzeń.

Za pomocą interfejsu setMaxStorageSize API można ustawić rozmiar lokalnej bazy danych. Interfejs API jest asynchroniczny, a wywołanie zwrotne jest wywoływane podczas uruchamiania usług App Center. Z tego powodu setMaxStorageSize należy wywołać przed wywołaniem AppCenter.start(...). Interfejs API można wywołać tylko raz.

// 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)

Jeśli nie ustawisz maksymalnego rozmiaru przechowywania, SDK używa domyślnego maksymalnego rozmiaru 10 MB. Minimalny rozmiar, który można ustawić, to 20 KB.

Uwaga / Notatka

Rzeczywista maksymalna pojemność magazynu może być wyższa niż wybrana wartość. SqLite zaokrągla rozmiar do następnej wielokrotności rozmiaru strony. SDK Centrum Aplikacji używa rozmiaru strony 4 KB.

Uwaga / Notatka

Dzienniki starsze niż 25 dni zostaną odrzucone.

Dodawanie magazynów dystrybucji

Domyślnie aktualizacje w aplikacji działają dla aplikacji zainstalowanych ze zdefiniowanej listy sklepów. Jeśli chcesz dystrybuować aplikację za pośrednictwem sklepów, które nie są uwzględnione na wstępnie zdefiniowanej liście sklepów, możesz dodać wymagany instalator pakietów przy użyciu poniższego interfejsu API przed rozpoczęciem centrum aplikacji:

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

Uwaga / Notatka

Nie dodawaj sklepów, takich jak Google Play, aby uniknąć żadnych ograniczeń.

Nieudane wywołania interfejsu API

Istnieje wiele powodów, dla których wywołanie zwrotne może zakończyć się niepowodzeniem.

  • Określony rozmiar jest nieprawidłową wartością (mniejszą niż 20 KB lub większą niż 140 TB).
  • Bieżący rozmiar bazy danych jest większy niż określony maksymalny rozmiar.
  • Interfejs API został już wywołany. Można go skonfigurować tylko raz na proces.
  • Interfejs API został wywołany po AppCenter.start(...).

Możesz sprawdzić ostrzeżenia i błędy w konsoli przy użyciu tagu rejestru AppCenter, aby rozwiązać problemy z konfiguracją.

Asynchroniczne interfejsy API w zestawie Android SDK

Asynchroniczne interfejsy API zwracają AppCenterFuture obiekt zamiast bezpośredniego zwracania wyniku.

Możesz wywołać metodę get() na obiekcie typu future, aby synchronicznie poczekać na wynik, lub podać wywołanie zwrotne jak poniżej, wypełniając odpowiednie typy zwracane podczas wywoływania interfejsu 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.
    }
})

Aby uniknąć blokowania wątku interfejsu użytkownika, które powoduje spowolnienie aplikacji, rozważ użycie thenAccept razem z wywołaniem zwrotnym nieustannie.

W wątku roboczym można wywołać {AnyAsyncApi}().get().

Przykład wywołania zwrotnego:

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")
}

Przykład synchroniczny:

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