Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- Skonfiguruj zestaw SDK App Center, wywołując
AppCenter.start(...)
metodę zgodnie z przewodnikiem Wprowadzenie do zestawu SDK App Center. - 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()