Partager via


Autres API Android

Important

Visual Studio App Center a été mis hors service le 31 mars 2025, à l’exception des fonctionnalités d’analyse et de diagnostic, qui continueront d’être prises en charge jusqu’au 30 juin 2026. En savoir plus.

Ajuster le niveau de journalisation

Vous pouvez contrôler la quantité de messages de log générés par App Center qui s’affichent dans le 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ébogables et sur WARN pour les applications débogables. Vous pouvez définir le niveau de journal à tout moment.

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’une nouvelle est générée uniquement lorsque l’application est réinstallée ou que l’utilisateur supprime manuellement toutes les données de l’application. L’API suivante est utile à des fins de débogage.

AppCenter.getInstallId();
AppCenter.getInstallId()

Cette API est asynchrone, vous pouvez en savoir plus sur cela dans notre guide des API asynchrones App Center .

Remarque

Cette méthode ne doit être utilisée qu’une fois AppCenter démarrée, elle retourne null toujours 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’incident. 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. Pour définir un userID dans le SDK, utilisez le 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. En savoir plus dans la documentation de recherche d’App Center.

Remarque

La valeur de l’ID utilisateur est limitée à 256 caractères. Il s’affiche avec vos rapports d’incident, mais n’est 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 sera utilisé. Vous devez définir l’ID utilisateur vous-même avant le lancement de chaque 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 à la fois, 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 à nouveau tous les services, 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 dans les lancements d’application.

Cette API est asynchrone, vous pouvez en savoir plus sur cela dans notre guide des API asynchrones App Center .

Remarque

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

Interdire les demandes 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 collectées par le SDK App Center 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 il ne sera envoyé que lorsque les demandes réseau seront autorisées.

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

Remarque

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

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

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

Remarque

La valeur SharedPreferences enregistrée précédemment est ignorée jusqu’à ce que AppCenter soit démarré. Elle retourne le dernier jeu de valeurs à l’aide setNetworkRequestsAllowed 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)

Remarque

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 vérifier si App Center est activé ou non.

AppCenter.isEnabled();
AppCenter.isEnabled()

Cette API est asynchrone, vous pouvez en savoir plus sur cela dans notre guide des API asynchrones App Center .

Remarque

Cette méthode ne doit être utilisée qu’une fois AppCenter démarrée, elle retourne false toujours 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 du stockage

Lorsque vous utilisez le SDK App Center, les logs 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 API pause 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 Kit de développement logiciel (SDK) utilise une taille maximale par défaut de 10 Mo. La taille minimale que vous êtes autorisé à définir est de 20 Ko.

Remarque

La taille de stockage maximale réelle peut être supérieure à la valeur que vous avez choisie. SQLite arrondit la taille jusqu’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.

Remarque

Les fichiers journaux datant de plus de 25 jours seront supprimé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);

Remarque

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

Appels d’API non réussis

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 vérifier les avertissements et les erreurs dans la console à l’aide de la balise de log AppCenter 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() l’objet futur pour attendre de façon synchrone le résultat ou fournir un rappel comme celui-ci, 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 tout le temps.

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()