Otras API de Android

Importante

Visual Studio App Center está programado para la retirada el 31 de marzo de 2025. Aunque puede seguir usando Visual Studio App Center hasta que se retire por completo, hay varias alternativas recomendadas a las que puede considerar la posibilidad de migrar.

Obtenga más información sobre las escalas de tiempo de soporte técnico y las alternativas.

Ajuste del nivel de registro

Puede controlar la cantidad de mensajes de registro por Parte de App Center que se muestran en LogCat. Use la API para habilitar el registro adicional durante la AppCenter.setLogLevel() depuración. Los niveles de registro corresponden a los definidos en android.util.Log. De forma predeterminada, se establece ASSERT en 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 esto en nuestra guía de API asincrónicas de App Center .

Nota

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

Identificación de usuarios

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

  1. Configure el SDK de App Center llamando a AppCenter.start(...) como se describe en la guía de introducción del SDK de App Center.
  2. Establezca un userID elemento en el SDK con 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 característica de búsqueda de App Center para buscar informes de bloqueo 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 bloqueo, pero no se usará para la agregación o 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 que se inicie 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 esto en nuestra guía de API asincrónicas de App Center .

Nota

Este método solo se debe usar después AppCenter de que 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 inicios.

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 AppCenter que 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 Analytics de que 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 esto en nuestra guía de API asincrónicas de App Center .

Nota

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

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

Cuando se usa 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 junto con las pause API y resume . 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 llama a la devolución de llamada cuando se inician los servicios de App Center. Por este motivo, setMaxStorageSize se debe llamar a antes de llamar 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 máximo real de almacenamiento 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 en la aplicación funcionan para las aplicaciones instaladas desde la lista definida de almacenes. Si quiere distribuir la aplicación a través de almacenes que no están incluidos en la lista predefinida de almacenes, puede agregar el instalador de paquete necesario mediante la API siguiente antes de que Se inicie App Center:

    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 incorrectas

Hay muchas razones por las que puede producirse un error en la devolución de llamada.

  • 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 AppCenter.start(...)de .

Puede comprobar advertencias y errores en la consola mediante la AppCenter etiqueta de registro 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 en el objeto futuro para esperar sincrónicamente el resultado o proporcionar una devolución de llamada como esta, rellenando los tipos de valor devuelto 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()