Altre API Android
Importante
Visual Studio App Center è previsto per il ritiro il 31 marzo 2025. Anche se è possibile continuare a usare Visual Studio App Center fino a quando non viene completamente ritirato, esistono diverse alternative consigliate che è possibile considerare la migrazione a.
Altre informazioni sulle sequenze temporali di supporto e sulle alternative.
È possibile controllare la quantità di messaggi di log da App Center che vengono visualizzati in LogCat. Usare l'API per abilitare la registrazione aggiuntiva durante il AppCenter.setLogLevel()
debug. I livelli di log corrispondono a quelli definiti in android.util.Log
. Per impostazione predefinita, è impostato su ASSERT
per applicazioni non debugbili e WARN
per applicazioni debugabili. È possibile impostare il livello di log in qualsiasi momento.
Per avere il maggior numero possibile di messaggi di log, usare Log.Verbose
.
AppCenter.setLogLevel(Log.VERBOSE);
AppCenter.setLogLevel(Log.VERBOSE)
App Center SDK crea un UUID per ogni dispositivo dopo l'installazione dell'app. Questo identificatore rimane invariato per un dispositivo quando l'app viene aggiornata e una nuova viene generata solo quando l'app viene nuovamente installata o l'utente elimina manualmente tutti i dati dell'app. L'API seguente è utile per scopi di debug.
AppCenter.getInstallId();
AppCenter.getInstallId()
Questa API è asincrona, è possibile leggere altre informazioni sulla guida alle API asincrone di App Center .
Nota
Questo metodo deve essere usato solo dopo AppCenter
l'avvio, verrà sempre restituito null
prima dell'avvio.
App Center SDK supporta l'impostazione di un ID utente usato per aumentare i report di arresto anomalo. Per usare questa funzionalità:
- Configurare App Center SDK chiamando
AppCenter.start(...)
come descritto nella guida introduttiva di App Center SDK. - Impostare un
userID
oggetto nell'SDK usando il codice seguente:
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")
Dopo aver impostato un ID utente, è possibile usare la funzionalità di ricerca di App Center per cercare report di arresto anomalo specifici per l'ID. Altre informazioni nella documentazione di ricerca di App Center.
Nota
Il valore per l'ID utente è limitato a 256 caratteri. Verrà visualizzato con i report di arresto anomalo, ma non usati per aggregazioni o conteggi degli utenti interessati. Se si imposta l'ID utente più volte, verrà usato solo l'ultimo ID utente. È necessario impostare l'ID utente prima dell'avvio di ogni applicazione, perché questo valore non viene archiviato dall'SDK tra i lanci.
Se si vuole disabilitare tutti i servizi di App Center contemporaneamente, usare l'API setEnabled()
. Se disabilitato, l'SDK non inoltra informazioni a App Center.
AppCenter.setEnabled(false);
AppCenter.setEnabled(false)
Per abilitare nuovamente tutti i servizi, usare la stessa API ma passare true
come parametro.
AppCenter.setEnabled(true);
AppCenter.setEnabled(true)
Lo stato viene mantenuto nello spazio di archiviazione del dispositivo tra i lanci dell'applicazione.
Questa API è asincrona, è possibile leggere altre informazioni sulla guida alle API asincrone di App Center .
Nota
Questo metodo deve essere usato solo dopo AppCenter
l'avvio.
In App Center SDK le richieste di rete sono consentite per impostazione predefinita. Se si desidera inviare dati raccolti dall'SDK di App Center dall'utente, è possibile impedire l'invio automatico dei dati.
AppCenter.setNetworkRequestsAllowed(false);
AppCenter.setNetworkRequestsAllowed(false)
In questo caso, App Center SDK continua a raccogliere dati, ma verrà inviato solo quando le richieste di rete saranno consentite.
AppCenter.setNetworkRequestsAllowed(true);
AppCenter.setNetworkRequestsAllowed(true)
Nota
Questo valore viene mantenuto tra l'avvio.
In qualsiasi momento, è possibile verificare se l'invio di dati in App Center SDK è consentito o meno.
AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()
Nota
Il valore salvato in precedenza viene SharedPreferences
ignorato fino all'avvio AppCenter
.
Restituirà l'ultimo set di valori usando setNetworkRequestsAllowed
o true
se il valore non è stato modificato prima dell'avvio di AppCenter.
Abilitare o disabilitare i servizi in fase di esecuzione con il codice seguente:
Analytics.setEnabled(false);
Analytics.setEnabled(false)
Nota
Questo metodo deve essere usato solo dopo Analytics
l'avvio.
È anche possibile verificare se App Center è abilitato o meno.
AppCenter.isEnabled();
AppCenter.isEnabled()
Questa API è asincrona, è possibile leggere altre informazioni sulla guida alle API asincrone di App Center .
Nota
Questo metodo deve essere usato solo dopo AppCenter
l'avvio, verrà sempre restituito false
prima dell'avvio.
È possibile ottenere la versione di App Center SDK attualmente usata.
AppCenter.getSdkVersion();
AppCenter.getSdkVersion()
Quando si usa App Center SDK, i log vengono archiviati localmente nel dispositivo. I log di grandi dimensioni possono richiedere molto spazio, quindi è possibile scegliere di limitare le dimensioni del database locale. È utile anche in combinazione con le pause
API e resume
. Se si prevede di essere sospesi per molto tempo, è possibile usare una dimensione del database più grande per archiviare più eventi.
È possibile usare l'API setMaxStorageSize
per impostare le dimensioni del database locale. L'API è asincrona e il callback viene chiamato quando si avviano i servizi di App Center. Per questo motivo, setMaxStorageSize
deve essere chiamato prima della chiamata a AppCenter.start(...)
. È possibile chiamare l'API una sola volta.
// 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)
Se non si impostano le dimensioni massime di archiviazione, l'SDK usa una dimensione massima predefinita di 10 MB. Le dimensioni minime che è consentito impostare sono 20 KB.
Nota
Le dimensioni massime effettive di archiviazione possono essere superiori al valore scelto. SQLite arrotonda le dimensioni fino al multiplo successivo delle dimensioni della pagina. App Center SDK usa una dimensione di pagina di 4 KB.
Nota
I log precedenti a 25 giorni verranno eliminati.
Per impostazione predefinita, gli aggiornamenti in-app funzionano per le app installate dall'elenco definito degli archivi. Se si vuole distribuire l'applicazione tramite archivi non inclusi nell'elenco predefinito degli archivi, è possibile aggiungere il programma di installazione del pacchetto necessario usando l'API seguente prima dell'avvio di App Center:
Set<String> stores = new HashSet<String>();
stores.add("com.store1.packageinstaller");
stores.add("com.store2.packageinstaller");
Distribute.addStores(stores);
Nota
Non aggiungere negozi come Google Play per evitare restrizioni.
Esistono molti motivi per cui il callback potrebbe non riuscire.
- La dimensione specificata è un valore non valido (minore di 20 KB o maggiore di 140 TB).
- Le dimensioni correnti del database sono maggiori delle dimensioni massime specificate.
- L'API è già stata chiamata. È possibile configurarlo una sola volta per processo.
- L'API è stata chiamata dopo
AppCenter.start(...)
.
È possibile controllare avvisi ed errori nella console usando il AppCenter
tag di log per risolvere i problemi di configurazione.
Le API asincrone restituiscono un AppCenterFuture
oggetto anziché restituire direttamente il risultato.
È possibile chiamare get()
l'oggetto futuro per attendere in modo sincrono il risultato o fornire un callback simile al seguente, compilando i rispettivi tipi restituiti quando si chiama l'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.
}
})
Per evitare di bloccare il thread dell'interfaccia utente che causa un rallentamento dell'applicazione, è consigliabile usare thenAccept
con il callback tutto il tempo.
In un thread di lavoro è possibile chiamare {AnyAsyncApi}().get()
.
Esempio di callback:
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")
}
Esempio sincrono:
boolean enabled = AppCenter.isEnabled().get();
val enabled = AppCenter.isEnabled().get()