Compartir a través de


Otras API de Android

Importante

Visual Studio App Center se retiró el 31 de marzo de 2025, excepto las características de análisis y diagnóstico, que seguirán siendo compatibles hasta el 30 de junio de 2026. Más información.

Ajuste el nivel de registro

Puede controlar los mensajes de log de App Center que aparecen en LogCat. Utiliza la API AppCenter.setLogLevel() para habilitar el registro adicional durante la depuración. Los niveles de registro corresponden a los definidos en android.util.Log. De forma predeterminada, se establece ASSERT para aplicaciones no depurables y WARN para aplicaciones depurables. Puede establecer el nivel de registro en cualquier momento que desee.

Para tener tantos mensajes de registro como sea posible, use Log.Verbose.

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

Identificación de instalaciones

El SDK de App Center crea un UUID para cada dispositivo una vez instalada la aplicación. Este identificador sigue siendo el mismo para un dispositivo cuando se actualiza la aplicación y solo se genera uno nuevo cuando la aplicación se vuelve a instalar o el usuario elimina manualmente todos los datos de la aplicación. La SIGUIENTE API es útil para fines de depuración.

AppCenter.getInstallId();
AppCenter.getInstallId()

Esta API es asincrónica, puede leer más sobre eso en nuestra guía de API asincrónicas de App Center .

Nota:

Este método solo se debe usar después de que AppCenter haya comenzado; antes de empezar, siempre devolverá null.

Identificación de usuarios

El SDK de App Center admite la configuración de un identificador de usuario que se usa para mejorar los informes de fallos. Para usar esta funcionalidad:

  1. Configure el SDK de App Center llamando a AppCenter.start(...) como se describe en la guía introducción del SDK de App Center.
  2. Establezca un userID elemento en el SDK mediante el código siguiente:
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")

Después de establecer un identificador de usuario, puede usar la función de búsqueda de App Center para buscar informes de fallos específicos para el identificador. Obtenga más información en la documentación de búsqueda de App Center.

Nota:

El valor del identificador de usuario está limitado a 256 caracteres. Se mostrará con los informes de errores, pero no se usará para la agregación ni para los recuentos de usuarios afectados. En caso de establecer el identificador de usuario varias veces, solo se usará el último identificador de usuario. Debe establecer el identificador de usuario usted mismo antes de iniciar cada aplicación, ya que el SDK no almacena este valor entre inicios.

Deshabilitar todos los servicios en tiempo de ejecución

Si desea deshabilitar todos los servicios de App Center a la vez, use la setEnabled() API. Cuando se deshabilita, el SDK no reenvía ninguna información a App Center.

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

Para habilitar todos los servicios de una vez más, use la misma API, pero pase true como parámetro.

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

El estado se conserva en el almacenamiento del dispositivo en los inicios de la aplicación.

Esta API es asincrónica, puede leer más sobre eso en nuestra guía de API asincrónicas de App Center .

Nota:

Este método solo se debe usar después de que AppCenter se haya iniciado.

No permitir solicitudes de red

En el SDK de App Center, las solicitudes de red se permiten de forma predeterminada. Si desea enviar datos que el SDK de App Center recopila por el usuario, puede impedir el envío automático de datos.

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

En este caso, el SDK de App Center continúa recopilando datos, pero solo se enviará cuando se permitan las solicitudes de red.

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

Nota:

Este valor se conserva entre los reinicios.

En cualquier momento, puede comprobar si se permiten o no el envío de datos en el SDK de App Center.

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

Nota:

El valor guardado anteriormente en SharedPreferences se omite hasta que AppCenter se inicia. Devolverá el último valor establecido con setNetworkRequestsAllowed o true si el valor no se cambió antes de que Se inicie AppCenter.

Cambio del estado del servicio en tiempo de ejecución

Habilite o deshabilite los servicios en tiempo de ejecución con el código siguiente:

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

Nota:

Este método solo se debe usar después de que Analytics se haya iniciado.

Comprobación de si App Center está habilitado

También puede comprobar si App Center está habilitado o no.

AppCenter.isEnabled();
AppCenter.isEnabled()

Esta API es asincrónica, puede leer más sobre eso en nuestra guía de API asincrónicas de App Center .

Nota:

Este método solo se debe usar después de que AppCenter haya comenzado; antes de empezar, siempre devolverá false.

Comprobación de la versión del SDK de App Center en tiempo de ejecución

Puede obtener la versión del SDK de App Center que está usando actualmente.

AppCenter.getSdkVersion();
AppCenter.getSdkVersion()

Tamaño de almacenamiento

Al usar el SDK de App Center, los registros se almacenan localmente en el dispositivo. Los registros grandes pueden ocupar mucho espacio, por lo que puede optar por limitar el tamaño de la base de datos local. También es útil en conjunto con las pause y resume API. Si espera pausarse durante mucho tiempo, puede usar un tamaño de base de datos mayor para almacenar más eventos.

Puede usar la setMaxStorageSize API para establecer el tamaño de la base de datos local. La API es asincrónica y se invoca la devolución de llamada cuando se inician los servicios de App Center. Por este motivo, se debe llamar a setMaxStorageSize antes de la llamada a AppCenter.start(...). Solo puede llamar a la API una 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)

Si no establece el tamaño máximo de almacenamiento, el SDK usa un tamaño máximo predeterminado de 10 MB. El tamaño mínimo que puede establecer es de 20 KB.

Nota:

El tamaño de almacenamiento máximo real puede ser mayor que el valor que ha elegido. SQLite redondea el tamaño hasta el siguiente múltiplo de la página. El SDK de App Center usa un tamaño de página de 4 KB.

Nota:

Los registros anteriores a 25 días se descartarán.

Agregar almacenes de distribución

De forma predeterminada, las actualizaciones desde la aplicación funcionan para las aplicaciones instaladas desde la lista definida de tiendas. Si quiere distribuir la aplicación a través de tiendas que no están incluidas en la lista predefinida de almacenes, puede agregar el instalador de paquete necesario mediante la API siguiente antes de que App Center comience:

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

Nota:

No agregue tiendas como Google Play para evitar restricciones.

Llamadas API fallidas

Hay muchas razones por las que la devolución de llamada puede fallar.

  • El tamaño especificado es un valor no válido (menor que 20 KB o mayor que 140 TB).
  • El tamaño de la base de datos actual es mayor que el tamaño máximo especificado.
  • Ya se ha llamado a la API. Puede configurarlo solo una vez por proceso.
  • Se ha llamado a la API después de AppCenter.start(...).

Puede comprobar advertencias y errores en la consola mediante la etiqueta de registro AppCenter para solucionar problemas de configuración.

API asincrónicas en Android SDK

Las API asincrónicas devuelven un AppCenterFuture objeto en lugar de devolver el resultado directamente.

Puede llamar get() a la instancia futura para esperar de manera síncrona el resultado o proporcionar un callback como este, especificando los tipos de retorno respectivos al llamar a la 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 el bloqueo del subproceso de interfaz de usuario que provoca la ralentización de la aplicación, considere la posibilidad de usar thenAccept con la devolución de llamada todo el tiempo.

En un subproceso de trabajo, puede llamar a {AnyAsyncApi}().get().

Ejemplo de devolución de llamada:

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

Ejemplo sincrónico:

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