Andere Android-APIs

Wichtig

Visual Studio App Center wird am 31. März 2025 eingestellt. Sie können Visual Studio App Center zwar weiterhin verwenden, bis es vollständig eingestellt ist, es gibt jedoch mehrere empfohlene Alternativen, zu denen Sie möglicherweise eine Migration in Erwägung ziehen.

Erfahren Sie mehr über Supportzeitpläne und Alternativen.

Anpassen der Protokollebene

Sie können die Anzahl der Protokollnachrichten von App Center steuern, die in LogCat angezeigt werden. Verwenden Sie die AppCenter.setLogLevel() API, um beim Debuggen zusätzliche Protokollierung zu aktivieren. Die Protokollebenen entsprechen den in android.util.Logdefinierten. Standardmäßig ist es ASSERT für nicht debugbare Anwendungen und WARN für debugfähige Anwendungen auf festgelegt. Sie können die Protokollebene jederzeit festlegen.

Verwenden Sie , um so viele Protokollmeldungen wie möglich zu erhalten Log.Verbose.

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

Identifizieren von Installationen

Das App Center SDK erstellt nach der Installation der App eine UUID für jedes Gerät. Dieser Bezeichner bleibt für ein Gerät gleich, wenn die App aktualisiert wird und nur dann eine neue generiert wird, wenn die App erneut installiert wird oder der Benutzer alle App-Daten manuell löscht. Die folgende API ist für Debuggingzwecke nützlich.

AppCenter.getInstallId();
AppCenter.getInstallId()

Diese API ist asynchron. Weitere Informationen hierzu finden Sie in unserem Leitfaden für asynchrone App Center-APIs .

Hinweis

Diese Methode darf erst nach dem AppCenter Start verwendet werden. Sie wird immer vor dem Start zurückgegeben null .

Identifizieren von Benutzern

Das App Center SDK unterstützt das Festlegen einer Benutzer-ID , die zum Erweitern von Absturzberichten verwendet wird. So verwenden Sie diese Funktion:

  1. Konfigurieren Sie das App Center SDK, indem Sie AppCenter.start(...) aufrufen, wie im Leitfaden Erste Schritte für das App Center SDK beschrieben.
  2. Legen Sie einen userID im SDK mit dem folgenden Code fest:
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")

Nachdem Sie eine Benutzer-ID festgelegt haben, können Sie die Suchfunktion von App Center verwenden, um nach bestimmten Absturzberichten für die ID zu suchen. Weitere Informationen finden Sie in der App Center-Suchdokumentation.

Hinweis

Der Wert für die Benutzer-ID ist auf 256 Zeichen beschränkt. Es wird mit Ihren Absturzberichten angezeigt, aber nicht für die Aggregation oder Anzahl der betroffenen Benutzer verwendet. Wenn Sie die Benutzer-ID mehrmals festlegen, wird nur die letzte Benutzer-ID verwendet. Sie müssen die Benutzer-ID vor jedem Anwendungsstart selbst festlegen, da dieser Wert zwischen den Starts nicht vom SDK gespeichert wird.

Deaktivieren aller Dienste zur Laufzeit

Wenn Sie alle App Center-Dienste gleichzeitig deaktivieren möchten, verwenden Sie die setEnabled() API. Wenn sie deaktiviert ist, leitet das SDK keine Informationen an App Center weiter.

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

Um alle Dienste gleichzeitig zu aktivieren, verwenden Sie dieselbe API, übergeben true sie aber als Parameter.

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

Der Zustand wird im Speicher des Geräts bei allen Anwendungsstarts beibehalten.

Diese API ist asynchron. Weitere Informationen hierzu finden Sie in unserem Leitfaden für asynchrone App Center-APIs .

Hinweis

Diese Methode darf erst nach dem AppCenter Start verwendet werden.

Netzwerkanforderungen nicht zulassen

Im App Center SDK sind Netzwerkanforderungen standardmäßig zulässig. Wenn Sie Daten senden möchten, die das App Center SDK vom Benutzer erfasst, können Sie das automatische Senden von Daten nicht zulassen.

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

In diesem Fall sammelt das App Center SDK weiterhin Daten, sie werden jedoch nur gesendet, wenn die Netzwerkanforderungen zulässig sind.

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

Hinweis

Dieser Wert wird zwischen den Starts beibehalten.

Sie können jederzeit überprüfen, ob das Senden von Daten im App Center SDK zulässig ist.

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

Hinweis

Der zuvor in SharedPreferences gespeicherte Wert wird ignoriert, bis AppCenter er gestartet wird. Er gibt den letzten Wert zurück, der mit setNetworkRequestsAllowed oder festgelegt wurde, true wenn der Wert vor dem Start von AppCenter nicht geändert wurde.

Ändern des Dienststatus in der Laufzeit

Aktivieren oder deaktivieren Sie die Dienste zur Laufzeit mit folgendem Code:

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

Hinweis

Diese Methode darf erst nach dem Analytics Start verwendet werden.

Überprüfen, ob App Center aktiviert ist

Sie können auch überprüfen, ob App Center aktiviert ist oder nicht.

AppCenter.isEnabled();
AppCenter.isEnabled()

Diese API ist asynchron. Weitere Informationen hierzu finden Sie in unserem Leitfaden für asynchrone App Center-APIs .

Hinweis

Diese Methode darf erst nach dem AppCenter Start verwendet werden. Sie wird immer vor dem Start zurückgegeben false .

Überprüfen der App Center SDK-Version zur Laufzeit

Sie können die Version des App Center SDK abrufen, die Sie derzeit verwenden.

AppCenter.getSdkVersion();
AppCenter.getSdkVersion()

Speichergröße

Bei Verwendung des App Center SDK werden Protokolle lokal auf dem Gerät gespeichert. Große Protokolle können viel Speicherplatz in Anspruch nehmen, sodass Sie die Größe der lokalen Datenbank einschränken können. Dies ist auch in Verbindung mit den pause APIs und resume nützlich. Wenn Sie erwarten, dass sie lange angehalten wird, können Sie eine größere Datenbankgröße verwenden, um weitere Ereignisse zu speichern.

Sie können die setMaxStorageSize API verwenden, um die Größe der lokalen Datenbank festzulegen. Die API ist asynchron, und der Rückruf wird aufgerufen, wenn Sie App Center Services starten. Aus diesem Grund setMaxStorageSize muss vor ihrem Aufruf von AppCenter.start(...)aufgerufen werden. Sie können die API nur einmal aufrufen.

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

Wenn Sie die maximale Speichergröße nicht festlegen, verwendet das SDK eine standardmäßige maximale Größe von 10 MB. Die Mindestgröße, die Sie festlegen dürfen, beträgt 20 KB.

Hinweis

Die tatsächliche maximale Speichergröße kann höher sein als der von Ihnen gewählte Wert. SQLite rundet die Größe auf das nächste Vielfache der Seitengröße auf. Das App Center SDK verwendet eine Seitengröße von 4 KB.

Hinweis

Protokolle, die älter als 25 Tage sind, werden verworfen.

Hinzufügen von Verteilungsspeichern

Standardmäßig funktionieren In-App-Updates für Apps, die aus der definierten Liste der Stores installiert werden. Wenn Sie Ihre Anwendung über Stores verteilen möchten, die nicht in der vordefinierten Liste der Stores enthalten sind, können Sie das erforderliche Paketinstallationsprogramm mithilfe der folgenden API hinzufügen, bevor App Center startet:

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

Hinweis

Fügen Sie keine Stores wie Google Play hinzu, um Einschränkungen zu vermeiden.

Nicht erfolgreiche API-Aufrufe

Es gibt viele Gründe, warum der Rückruf fehlschlägt.

  • Die angegebene Größe ist ein ungültiger Wert (kleiner als 20 KB oder größer als 140 TB).
  • Die aktuelle Datenbankgröße ist größer als die angegebene maximale Größe.
  • Die API wurde bereits aufgerufen. Sie können es nur einmal pro Prozess konfigurieren.
  • Die API wurde nach AppCenter.start(...)aufgerufen.

Sie können Warnungen und Fehler in der Konsole mithilfe des AppCenter Protokolltags überprüfen, um Konfigurationsprobleme zu beheben.

Asynchrone APIs im Android SDK

Asynchrone APIs geben ein AppCenterFuture Objekt zurück, anstatt das Ergebnis direkt zurückzugeben.

Sie können entweder das zukünftige Objekt aufrufen get() , um synchron auf das Ergebnis zu warten, oder einen Rückruf wie diesen bereitstellen, indem Sie beim Aufrufen der API die entsprechenden Rückgabetypen ausfüllen:

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

Um zu vermeiden, dass ui-Thread blockiert wird, der zu einer Verlangsamung Ihrer Anwendung führt, sollten Sie die verwendung thenAccept mit dem Rückruf die ganze Zeit in Erwägung ziehen.

In einem Workerthread können Sie aufrufen {AnyAsyncApi}().get().

Rückrufbeispiel:

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

Synchrones Beispiel:

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