Autres API Android

Important

Visual Studio App Center doit être mis hors service le 31 mars 2025. Bien que vous puissiez continuer à utiliser Visual Studio App Center jusqu’à ce qu’il soit entièrement mis hors service, il existe plusieurs alternatives recommandées vers lesquelles vous pouvez envisager de migrer.

En savoir plus sur les chronologies et les alternatives de support.

Ajuster le niveau du journal

Vous pouvez contrôler la quantité de messages de journal par App Center qui s’affichent dans LogCat. Utilisez l’API AppCenter.setLogLevel() pour activer la journalisation supplémentaire lors du débogage. Les niveaux de journal correspondent à ceux définis dans android.util.Log. Par défaut, il est défini sur ASSERT pour les applications non déboguables et WARN pour les applications débogueables. Vous pouvez définir le niveau de journal à tout moment de votre choix.

Pour avoir autant de messages de journal que possible, utilisez Log.Verbose.

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

Identifier les installations

Le Kit de développement logiciel (SDK) App Center crée un UUID pour chaque appareil une fois l’application installée. Cet identificateur reste le même pour un appareil lorsque l’application est mise à jour et qu’un nouveau est généré uniquement lorsque l’application est réinstallée ou que l’utilisateur supprime manuellement toutes les données d’application. L’API suivante est utile à des fins de débogage.

AppCenter.getInstallId();
AppCenter.getInstallId()

Cette API est asynchrone. Vous pouvez en savoir plus à ce sujet dans notre guide des API asynchrones App Center .

Notes

Cette méthode ne doit être utilisée qu’après AppCenter avoir démarré. Elle sera toujours retournée null avant le début.

Identifier les utilisateurs

Le Kit de développement logiciel (SDK) App Center prend en charge la définition d’un ID utilisateur utilisé pour augmenter les rapports d’incidents. Pour utiliser cette fonctionnalité :

  1. Configurez le Kit de développement logiciel (SDK) App Center en appelant AppCenter.start(...) comme décrit dans le guide de prise en main du Kit de développement logiciel (SDK) App Center.
  2. Définissez un userID dans le Kit de développement logiciel (SDK) à l’aide du code suivant :
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")

Après avoir défini un ID utilisateur, vous pouvez utiliser la fonctionnalité de recherche d’App Center pour rechercher des rapports d’incident spécifiques pour l’ID. Pour plus d’informations, consultez la documentation de recherche d’App Center.

Notes

La valeur de l’ID utilisateur est limitée à 256 caractères. Il sera affiché avec vos rapports d’incidents, mais pas utilisé pour l’agrégation ou le nombre d’utilisateurs affectés. Si vous définissez l’ID utilisateur plusieurs fois, seul le dernier ID utilisateur est utilisé. Vous devez définir l’ID utilisateur vous-même avant chaque lancement de l’application, car cette valeur n’est pas stockée par le KIT de développement logiciel (SDK) entre les lancements.

Désactiver tous les services au moment de l’exécution

Si vous souhaitez désactiver tous les services App Center en même temps, utilisez l’API setEnabled() . Lorsqu’il est désactivé, le KIT de développement logiciel (SDK) ne transfère aucune information à App Center.

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

Pour activer tous les services à nouveau, utilisez la même API, mais passez true en tant que paramètre.

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

L’état est conservé dans le stockage de l’appareil entre les lancements d’application.

Cette API est asynchrone. Vous pouvez en savoir plus à ce sujet dans notre guide des API asynchrones App Center .

Notes

Cette méthode ne doit être utilisée qu’après AppCenter le démarrage.

Interdire les requêtes réseau

Dans le Kit de développement logiciel (SDK) App Center, les demandes réseau sont autorisées par défaut. Si vous souhaitez envoyer des données que le Kit de développement logiciel (SDK) App Center collecte par l’utilisateur, vous pouvez interdire l’envoi automatique de données.

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

Dans ce cas, le Kit de développement logiciel (SDK) App Center continue de collecter des données, mais elles ne seront envoyées que lorsque les demandes réseau seront autorisées.

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

Notes

Cette valeur est conservée entre les démarrages.

À tout moment, vous pouvez case activée si l’envoi de données dans le Kit de développement logiciel (SDK) App Center est autorisé ou non.

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

Notes

La valeur enregistrée précédemment dans SharedPreferences est ignorée jusqu’à ce qu’elle AppCenter soit démarrée. Il retourne la dernière valeur définie à l’aide setNetworkRequestsAllowed de ou true si la valeur n’a pas été modifiée avant le début d’AppCenter.

Modifier l’état du service dans le runtime

Activez ou désactivez les services au moment de l’exécution avec le code suivant :

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

Notes

Cette méthode ne doit être utilisée qu’après Analytics le démarrage.

Vérifier si App Center est activé

Vous pouvez également case activée si App Center est activé ou non.

AppCenter.isEnabled();
AppCenter.isEnabled()

Cette API est asynchrone. Vous pouvez en savoir plus à ce sujet dans notre guide des API asynchrones App Center .

Notes

Cette méthode ne doit être utilisée qu’après AppCenter avoir démarré. Elle sera toujours retournée false avant le début.

Vérifier la version du Kit de développement logiciel (SDK) App Center au moment de l’exécution

Vous pouvez obtenir la version du Kit de développement logiciel (SDK) App Center que vous utilisez actuellement.

AppCenter.getSdkVersion();
AppCenter.getSdkVersion()

Taille de stockage

Lorsque vous utilisez le Kit de développement logiciel (SDK) App Center, les journaux d’activité sont stockés localement sur l’appareil. Les journaux volumineux peuvent prendre beaucoup d’espace. Vous pouvez donc choisir de limiter la taille de la base de données locale. Il est également utile conjointement avec les pause API et resume . Si vous prévoyez d’être suspendu pendant une longue période, vous pouvez utiliser une plus grande taille de base de données pour stocker d’autres événements.

Vous pouvez utiliser l’API setMaxStorageSize pour définir la taille de la base de données locale. L’API est asynchrone et le rappel est appelé lorsque vous démarrez les services App Center. Pour cette raison, setMaxStorageSize doit être appelé avant votre appel à AppCenter.start(...). Vous ne pouvez appeler l’API qu’une seule fois.

// 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 vous ne définissez pas la taille de stockage maximale, le SDK utilise une taille maximale par défaut de 10 Mo. La taille minimale que vous êtes autorisé à définir est de 20 Ko.

Notes

La taille de stockage maximale réelle peut être supérieure à la valeur que vous avez choisie. SQLite arrondit la taille au multiple suivant de la taille de page. Le Kit de développement logiciel (SDK) App Center utilise une taille de page de 4 Ko.

Notes

Les journaux antérieurs à 25 jours seront ignorés.

Ajouter des magasins de distribution

Par défaut, les mises à jour dans l’application fonctionnent pour les applications installées à partir de la liste définie des magasins. Si vous souhaitez distribuer votre application via des magasins qui ne sont pas inclus dans la liste prédéfinie des magasins, vous pouvez ajouter le programme d’installation de package nécessaire à l’aide de l’API ci-dessous avant le démarrage d’App Center :

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

Notes

N’ajoutez pas de magasins comme Google Play pour éviter toute restriction.

Appels d’API infructueux

Il existe de nombreuses raisons pour lesquelles le rappel peut échouer.

  • La taille spécifiée est une valeur non valide (inférieure à 20 Ko ou supérieure à 140 To).
  • La taille actuelle de la base de données est supérieure à la taille maximale spécifiée.
  • L’API a déjà été appelée. Vous ne pouvez le configurer qu’une seule fois par processus.
  • L’API a été appelée après AppCenter.start(...).

Vous pouvez case activée des avertissements et des erreurs dans la console à l’aide de la balise de AppCenter journal pour résoudre les problèmes de configuration.

API asynchrones dans le Kit de développement logiciel (SDK) Android

Les API asynchrones retournent un AppCenterFuture objet au lieu de retourner directement le résultat.

Vous pouvez appeler get() sur l’objet futur pour attendre de façon synchrone le résultat ou fournir un rappel de ce type, en remplissant les types de retour respectifs lors de l’appel de 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.
    }
})

Pour éviter de bloquer le thread d’interface utilisateur qui ralentit votre application, envisagez d’utiliser thenAccept avec le rappel en permanence.

Sur un thread de travail, vous pouvez appeler {AnyAsyncApi}().get().

Exemple de rappel :

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

Exemple synchrone :

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