DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Bluetooth
  • Cas particuliers
  • Limitations
  • Permissions requises
  • Threads et sablier
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
BTListePériphérique (Fonction)
En anglais : BTListDevice
Liste les périphériques Bluetooth accessibles.
AndroidWidget Android Attention : Les fonctions Bluetooth ne sont pas disponibles dans l'émulateur Android.
Exemple
sChaîneTmp est une chaîne
sListePériphs est une chaîne
// Liste les périphériques
Sablier(Vrai)
sListePériphs = BTListePériphérique()
Sablier(Faux)
// Vide le champ Table où sont listés les périphériques
TableSupprimeTout(TABLE_Appareils)
// Remplit le champ Table
SI sListePériphs <> "" ALORS
POUR TOUTE CHAÎNE sChaîneTmp DE sListePériphs SÉPARÉE PAR RC
TableAjoute(TABLE_Appareils, sChaîneTmp)
FIN
SINON
Info(ErreurInfo(errComplet))
FIN
Syntaxe
<Résultat> = BTListePériphérique([<Niveau de détail> [, <Type des éléments à lister> [, <Timeout> [, <Identifiant de la radio>]]]])
<Résultat> : Chaîne de caractères
  • Liste des périphériques Bluetooth disponibles,
  • Chaîne vide ("") en cas d'erreur. La fonction ErreurInfo permet d'obtenir plus de détails sur le problème rencontré.
Cette liste est de la forme :
  • en mode simple :
    <Identifiant Périphérique 1> + TAB + <Adresse MAC 1> + TAB + <Nom 1> + RC + ...
    + RC + <Identifiant Périphérique N> + TAB + <Adresse MAC N> + TAB + <Nom N>
  • en mode détaillé :
    <Identifiant Périphérique 1> + TAB + <Adresse MAC 1> + TAB + <Nom 1> + TAB +
    <Identifiant Classe 1> + TAB + <Connecté 1> + TAB + <Mémorisé 1> + TAB +
    <Authentifié 1> + TAB + <Date Vue 1> + TAB + <Date utilisé 1> + RC + ... + RC +
    <Identifiant Périphérique N> + TAB + <Adresse MAC N> + TAB + <Nom N> + TAB +
    <Identifiant Classe N> + TAB + <Connecté N> + TAB + <Mémorisé N> + TAB +
    <Authentifié N> + TAB + <Date vue N> + TAB + <Date utilisé N>
Les différentes informations obtenues sont les suivantes :
  • <Identifiant Périphérique> : Identifiant du périphérique, à utiliser dans les fonctions Bluetooth manipulant des périphériques.
  • <Adresse Mac> : Adresse physique du périphérique.
  • <Nom> : Nom retourné par le périphérique (peut être une chaîne vide).
  • <Identifiant Classe> : Classe du périphérique (entier sur 32 permettant d'obtenir des informations sur le type du périphérique). Cette classe peut correspondre à une des constantes suivantes :
    • btCoD_AccèsRéseau
    • btCoD_AudioVidéo
    • btCoD_pers
    • btCoD_Image
    • btCoD_Inconnu
    • btCoD_Jouet
    • btCoD_Ordinateur
    • btCoD_Périphérique
    • btCoD_Téléphone
    • btCoD_Vêtement
  • <Connecté> : 1 si le périphérique est actuellement "connecté" au poste en cours, 0 dans le cas contraire.
    AndroidWidget Android Cette information n'est pas gérée et correspondra toujours à 0.
  • <Mémorisé> : 1 si le périphérique est actuellement "mémorisé" par le gestionnaire Bluetooth du poste en cours, 0 dans le cas contraire.
    AndroidWidget Android Cette information n'est pas gérée et correspondra toujours à 0.
  • <Authentifié> : 1 si le périphérique est actuellement authentifié auprès du poste en cours, 0 dans le cas contraire.
  • <Date vue> : Date et heure à laquelle le périphérique a été vu pour la dernière fois par le poste en cours. Cette date est au format JJMMAAAAHHMMSS. Cette information est fournie uniquement pour les périphériques mémorisés.
    AndroidWidget Android Cette information n'est pas gérée et correspondra toujours à chaîne vide ("").
  • <Date utilisé> : Date et heure à laquelle le périphérique a été utilisé pour la dernière fois. Cette date est au format JJMMAAAAHHMMSS. Cette information est fournie uniquement pour les périphériques mémorisés.
    AndroidWidget Android Cette information n'est pas gérée et correspondra toujours à chaîne vide ("").
<Niveau de détail> : Constante optionnelle de type Entier
Niveau de détail du résultat :
btListeDétaillée<Résultat> contient la liste des périphériques en mode détaillé.
btListeSimple
(Valeur par défaut)
<Résultat> contient la liste des périphériques en mode simple.
<Type des éléments à lister> : Constante ou combinaison de constantes de type entier optionnelle
État des périphériques à sélectionner :
btEtatAuthentifiéPropose les périphériques authentifiés.
btEtatConnectéPropose les périphériques connectés.
AndroidWidget Android Cette constante n'est pas disponible.
btEtatInconnuPropose les périphériques inconnus.
btEtatMémoriséPropose les périphériques mémorisés.
AndroidWidget Android Cette constante n'est pas disponible.
btEtatTous
(Valeur par défaut)
Propose tous les périphériques.
<Timeout> : Entier optionnel
Timeout en secondes (compris entre 1 et 60) de la recherche des périphériques.
Par défaut, ce paramètre a pour valeur 10.
<Identifiant de la radio> : Entier optionnel
Identifiant de la radio Bluetooth à manipuler. Cet identifiant est retourné par la fonction BTListeRadio.
AndroidWidget Android Ce paramètre n'est pas géré et sera ignoré s'il est spécifié.
Remarques

Cas particuliers

  • Un périphérique authentifié est nécessairement mémorisé (l'inverse n'est pas vrai).
  • Le listage des périphériques est effectué en interrogeant l'environnement jusqu'au <Timeout> de la fonction. Dans cet intervalle de temps, il est possible que les périphériques n'aient pas le temps nécessaire pour communiquer leur identité. Il suffit d'utiliser ensuite la fonction BTInfoPériphérique pour obtenir les informations manquantes.

Limitations

  • Pour connaître la pile utilisée, utilisez la fonction BTPile.
  • Pour plus de détails sur les clés supportées, consultez Quelles piles utiliser ?
AndroidWidget Android

Permissions requises

L'utilisation de cette fonction entraîne la modification des permissions requises par l'application.
Permissions requises :
  • BLUETOOTH : cette permission permet aux applications de se connecter à des services bluetooth.
  • BLUETOOTH_ADMIN : cette permission permet aux applications de découvrir et de connecter des périphériques bluetooth.
  • ACCESS_FINE_LOCATION : cette permission permet à une application d'accéder à un emplacement indéfini (Cell-ID, WiFi).
Spécificité Android 11 : L'utilisation de cette fonction nécessite la mise en place de la permission ACCESS_BACKGROUND_LOCATION permettant la localisation de l'appareil.
Cette permission permet d'autoriser l'utilisation de la fonction lorsque l'application est en arrière-plan.
Si l'application nécessite la localisation en arrière-plan, il faut :
  • Ajouter manuellement la permission "ACCESS_BACKGROUND_LOCATION" dans l'assistant de génération de l'application Android.
  • Demander explicitement la permission de localisation en arrière-plan à l'utilisateur avec la fonction PermissionDemande. Par exemple :
    PermissionDemande(permLocalisationEnArrièrePlan, Callback)
    PROCÉDURE INTERNE Callback(p est une Permission)
    SI p.Accordé ALORS
    // Utilisation possible des fonctions nécessitant la localisation en arrière-plan
    FIN
    FIN
Une fenêtre permet à l'utilisateur de :
  • accepter l'accès à la position de l'appareil avec l'application en arrière-plan,
  • limiter l'accès à la position à l'application active,
  • refuser l'accès à la position.
L'utilisateur peut également modifier son autorisation à posteriori dans les réglages de Android.
Remarques :
  • Respectez les spécifications Google concernant les applications utilisant la localisation en arrière-plan. Pour plus de détails, consultez https://support.google.com/googleplay/android-developer/answer/9799150. Si ces conditions ne sont pas remplies (notamment les conditions d'information de l'utilisateur), les applications pourront ne pas obtenir l'autorisation de publication sur Play Store.
  • La demande de permission de localisation en arrière-plan ne doit être effectuée que si la permission de localisation a été accordée. Dans le cas contraire, la fonction PermissionDemande échouera.
  • Si le choix de l'utilisateur lors de la demande de permission de localisation en arrière-plan est plus restrictif que le choix effectué lors de la demande de permission de localisation, l'application sera automatiquement relancée.
  • Sur les appareils en version inférieure à Android 10, si la permission de localisation a été accordée à l'application, la demande de permission de localisation en arrière-plan sera accordée sans affichage de fenêtre.
AndroidWidget Android

Threads et sablier

Si la fonction est exécutée par le thread principal de l'application, un sablier (jauge infinie) sera affiché durant la détection des périphériques bluetooth.
Pour spécifier le message à afficher dans le sablier, utilisez la fonction TitreSuivant juste avant l'appel à la fonction BTListePériphérique.
Composante : wd290com.dll
Version minimum requise
  • Version 12
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 21/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale