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.
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.Log
definierten. 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:
- Konfigurieren Sie das App Center SDK, indem Sie
AppCenter.start(...)
aufrufen, wie im Leitfaden Erste Schritte für das App Center SDK beschrieben. - 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()