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.

Modificare il livello di log

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

Identificare le installazioni

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.

Identificare gli utenti

App Center SDK supporta l'impostazione di un ID utente usato per aumentare i report di arresto anomalo. Per usare questa funzionalità:

  1. Configurare App Center SDK chiamando AppCenter.start(...) come descritto nella guida introduttiva di App Center SDK.
  2. 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.

Disabilitare tutti i servizi in fase di esecuzione

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.

Annullare le richieste di rete

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.

Modificare lo stato del servizio in runtime

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.

Controllare se App Center è abilitato

È 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.

Controllare la versione di App Center SDK in fase di esecuzione

È possibile ottenere la versione di App Center SDK attualmente usata.

AppCenter.getSdkVersion();
AppCenter.getSdkVersion()

Dimensioni dello spazio di archiviazione

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.

Aggiungere archivi di distribuzione

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.

Chiamate API non riuscite

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.

API asincrone in Android SDK

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