Partilhar via


Outras APIs para Android

Importante

O Visual Studio App Center foi desativado em 31 de março de 2025, exceto para os recursos de Análise e Diagnóstico, que continuarão a ter suporte até 30 de junho de 2026. Mais informações.

Ajustar o nível de log

Você pode controlar a quantidade de mensagens de log pelo App Center que aparecem no LogCat. Use a AppCenter.setLogLevel() API para ativar o registo adicional durante a depuração. Os níveis de log correspondem aos definidos em android.util.Log. Por padrão, está definido como ASSERT para aplicativos não depuráveis e WARN para aplicativos depuráveis. Você pode definir o nível de log a qualquer momento.

Para ter o maior número possível de mensagens de log, use Log.Verbose.

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

Identificar instalações

O SDK do App Center cria um UUID para cada dispositivo depois que o aplicativo é instalado. Esse identificador permanece o mesmo para um dispositivo quando o aplicativo é atualizado e um novo é gerado somente quando o aplicativo é reinstalado ou o usuário exclui manualmente todos os dados do aplicativo. A API a seguir é útil para fins de depuração.

AppCenter.getInstallId();
AppCenter.getInstallId()

Essa API é assíncrona, você pode ler mais sobre isso em nosso guia de APIs assíncronas do App Center .

Observação

Este método só deve ser usado depois de AppCenter ter sido iniciado, ele sempre retornará null antes de começar.

Identificar usuários

O SDK do App Center suporta a definição de um ID de usuário que é usado para aumentar os relatórios de falhas. Para usar esse recurso:

  1. Configure o SDK do App Center chamando AppCenter.start(...) conforme descrito no Guia de introdução do SDK do App Center.
  2. Defina um userID no SDK usando o seguinte código:
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")

Depois de definir um ID de usuário, você pode usar o recurso de pesquisa do App Center para procurar relatórios de falhas específicos para o ID. Saiba mais na documentação de pesquisa do App Center.

Observação

O valor para o ID do usuário é limitado a 256 caracteres. Ele será mostrado com seus relatórios de falhas, mas não será usado para agregação ou contagens de usuários afetados. No caso de definir o ID de utilizador várias vezes, apenas o último ID de utilizador será utilizado. Você mesmo precisa definir o ID do usuário antes de cada inicialização do aplicativo, porque esse valor não é armazenado pelo SDK entre as iniciações.

Desativar todos os serviços em tempo de execução

Se quiser desativar todos os serviços do App Center de uma só vez, use a setEnabled() API. Quando desativado, o SDK não encaminhará nenhuma informação para o App Center.

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

Para habilitar todos os serviços novamente, use a mesma API, mas passe true como parâmetro.

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

O estado é persistido no armazenamento do dispositivo em todas as inicializações de aplicativos.

Essa API é assíncrona, você pode ler mais sobre isso em nosso guia de APIs assíncronas do App Center .

Observação

Este método só deve ser utilizado depois de AppCenter ter sido iniciado.

Não permitir solicitações de rede

No SDK do App Center, as solicitações de rede são permitidas por padrão. Se você quiser enviar dados que o SDK do App Center coleta quando solicitado pelo usuário, pode desativar o envio automático de dados.

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

Nesse caso, o SDK do App Center continua a coletar dados, mas eles serão enviados somente quando as solicitações de rede forem permitidas.

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

Observação

Esse valor é retido entre as partidas.

A qualquer momento, você pode verificar se o envio de dados no SDK do App Center é permitido ou não.

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

Observação

O valor salvo anteriormente em SharedPreferences é ignorado até AppCenter ser iniciado. Ele retornará o último valor definido usando setNetworkRequestsAllowed ou true se o valor não foi alterado antes do início do AppCenter.

Alterar o estado do serviço em tempo de execução

Habilite ou desabilite os serviços no tempo de execução com o seguinte código:

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

Observação

Este método só deve ser utilizado depois de Analytics ter sido iniciado.

Verifique se o App Center está ativado

Você também pode verificar se o App Center está habilitado ou não.

AppCenter.isEnabled();
AppCenter.isEnabled()

Essa API é assíncrona, você pode ler mais sobre isso em nosso guia de APIs assíncronas do App Center .

Observação

Este método só deve ser usado depois de AppCenter ter sido iniciado, ele sempre retornará false antes de começar.

Verifique a versão do SDK do App Center em tempo de execução

Você pode obter a versão do SDK do App Center que está usando no momento.

AppCenter.getSdkVersion();
AppCenter.getSdkVersion()

Tamanho de armazenamento

Ao usar o SDK do App Center, os logs são armazenados localmente no dispositivo. Logs grandes podem ocupar muito espaço, então você pode optar por limitar o tamanho do banco de dados local. Também é útil em conjunto com as APIs pause e resume. Se você espera ser pausado por um longo tempo, você pode usar um tamanho de banco de dados maior para armazenar mais eventos.

Você pode usar a setMaxStorageSize API para definir o tamanho do banco de dados local. A API é assíncrona e o retorno de chamada é invocado quando se iniciam os serviços do App Center. Por esta razão, setMaxStorageSize deve ser chamado antes da sua chamada para AppCenter.start(...). Você só pode chamar a API uma vez.

// 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 você não definir o tamanho máximo de armazenamento, o SDK usará um tamanho máximo padrão de 10 MB. O tamanho mínimo que você pode definir é de 20 KB.

Observação

O tamanho máximo de armazenamento real pode ser maior do que o valor escolhido. SQLite arredonda o tamanho para o próximo múltiplo do tamanho da página. O SDK do App Center usa um tamanho de página de 4 KB.

Observação

Os logs com mais de 25 dias serão descartados.

Adicionar lojas de distribuição

Por padrão, as atualizações no aplicativo funcionam para aplicativos instalados a partir da lista definida de lojas. Se você quiser distribuir seu aplicativo por meio de lojas que não estão incluídas na lista predefinida de lojas, você pode adicionar o instalador de pacote necessário usando a API abaixo antes do início do App Center:

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

Observação

Não adicione lojas como o Google Play para evitar restrições.

Chamadas de API malsucedidas

Há muitas razões pelas quais o retorno de chamada pode falhar.

  • O tamanho especificado é um valor inválido (menor que 20KB ou maior que 140TB).
  • O tamanho atual do banco de dados é maior do que o tamanho máximo especificado.
  • A API já foi chamada. Você pode configurá-lo apenas uma vez por processo.
  • A API foi chamada após AppCenter.start(...).

Você pode verificar avisos e erros no console usando a AppCenter marca de log para solucionar problemas de configuração.

APIs assíncronas no SDK do Android

As APIs assíncronas retornam um AppCenterFuture objeto em vez de retornar o resultado diretamente.

Você pode chamar get() o objeto futuro para aguardar o resultado de forma síncrona ou fornecer um retorno de chamada como este, preenchendo os respetivos tipos de retorno ao chamar a 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.
    }
})

Para evitar o bloqueio do thread da UI que pode causar lentidão no seu aplicativo, considere usar thenAccept com o callback o tempo todo.

Em um thread de trabalho, você pode chamar {AnyAsyncApi}().get().

Exemplo de retorno de chamada:

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

Exemplo síncrono:

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