Partilhar via


As outras APIs da Unity

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 o número de mensagens de log que aparecem do App Center no console. Use a API LogLevel para habilitar o registo adicional durante a depuração. Por padrão, está definido como ASSERT para os ambientes da App Store e WARN caso contrário.

Para ter o maior número possível de mensagens de log, habilite LogLevel.Verbose nas configurações do App Center ou no seu código.

AppCenter.LogLevel = LogLevel.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. Um novo identificador é gerado somente quando o aplicativo é reinstalado. A API a seguir é útil para fins de depuração.

System.Guid? installId = await AppCenter.GetInstallIdAsync();

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

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 Enabled propriedade. Quando desativado, o SDK não encaminhará nenhuma informação para o App Center.

AppCenter.SetEnabledAsync(false);

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

AppCenter.SetEnabledAsync(true);

Você não precisa esperar essa chamada para tornar outras chamadas de API (como IsEnabledAsync) consistentes.

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

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

Você pode habilitar ou desabilitar o serviço no tempo de execução com o seguinte código:

Analytics.SetEnabledAsync(true);

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.IsNetworkRequestsAllowed = 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.IsNetworkRequestsAllowed = 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;

Observação

O valor guardado anteriormente em SharedPreferences é ignorado até AppCenter ser iniciado na plataforma Android. Ele retornará o último valor definido usando AppCenter.IsNetworkRequestsAllowed = allowed ou true se o valor não foi alterado antes do início do AppCenter.

Verifique se o App Center está ativado

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

bool enabled = await AppCenter.IsEnabledAsync();

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.SdkVersion;

Atrasar o início do App Center

Pode haver casos em que você queira atrasar o início do App Center até depois que o AppCenterBehavior for iniciado. Por exemplo, se você quiser solicitar o consentimento do usuário antes de iniciar qualquer serviço do App Center.
Para fazer isso, adicione AppCenterBehaviorAdvanced ao objeto de jogo e marque as caixas de seleção de Iniciar SDK nativo a partir do aplicativo iOS/Android. Isso inicia o SDK no método Start de AppCenterBehavior e permite adicionar uma caixa de diálogo personalizada ou outra lógica.

Sugestão

Caso você gere as configurações no momento da compilação, outra maneira é ir para Configurações do> PlayerOutras Configurações>Símbolos de Definição de Script e colar APPCENTER_DONT_USE_NATIVE_STARTER.

APIs assíncronas no SDK do Unity

As APIs assíncronas retornam um AppCenterTask objeto em vez de retornar o resultado diretamente e retornam imediatamente em vez de aguardar a conclusão da ação.

Há três maneiras de interagir com esses métodos.

Método 1: ContinueWith

Para executar uma ação após a conclusão da atividade do AppCenterTask, adicione um retorno de chamada usando o método ContinueWith.

Exemplo:

AppCenter.IsEnabledAsync().ContinueWith(task =>
{
    // Do something with task.Result
});

Em situações em que o método tem um valor de retorno real, ele retornará AppCenterTask<{Return Type}> (como no exemplo acima). Nessas situações, o parâmetro task no retorno de chamada terá uma propriedade Result que você pode acessar.

Método 2: Recursos de idioma internos

Se estiveres a escrever código que tenha acesso ao .NET 4.6 ou superior, AppCenterTask pode ser await num contexto assíncrono.

Exemplo:

bool isEnabled = await AppCenter.IsEnabledAsync();

Método 3: Corrotinas

AppCenterTasks também são adequados para uso em co-rotinas.

Exemplo:

void SomeMethod()
{
    StartCoroutine(IsEnabledCoroutine());
}

IEnumerator IsEnabledCoroutine()
{
    var isEnabled = AppCenter.IsEnabledAsync();
    yield return isEnabled;

    // do something with the isEnabled
}