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.
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)
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.
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:
- 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. - 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.
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í.
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.
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í.
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.
Můžete získat verzi sady App Center SDK, kterou právě používáte.
AppCenter.getSdkVersion();
AppCenter.getSdkVersion()
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í.
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.
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 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()