BLE Pairing
Résumé
- Nom interne :
Ble_pairing - Catégorie : Bluetooth
- Objectif : Appairer (bonder) un appareil BLE déjà connecté via
Ble_connect. - Type de tâche : Normale
Compatibilité
-
Version minimale AndroMate :
1.1.0 -
Version maximale AndroMate :
1.1.0 -
Android minimum :
Android 13 (API 33) -
Android maximum testé :
Android 16 (API 36) -
Constructeurs supportés :
- ✅ Tous les constructeurs
-
Permissions requises :
BLUETOOTH_SCANBLUETOOTH_CONNECT- Localisation de l'appareil activée (exigence Android pour les opérations BLE)
Description détaillée
La tâche BLE Pairing déclenche le processus d'appairage (bonding) Bluetooth d'Android avec un appareil qui doit déjà être connecté via Ble_connect dans la même session de workflow. Si l'appareil est déjà appairé, la tâche retourne immédiatement.
Comme toute tâche BLE « d'exécution » (pairing, lecture/écriture de caractéristique), cette tâche nécessite que l'appareil soit actuellement connecté et enregistré — exécutez d'abord Ble_connect avec le même mac_ble.
Paramètres d'entrée
| Paramètre | Type | Obligatoire | Valeurs possibles | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|---|
mac_ble |
String | Oui | Une adresse MAC Bluetooth valide, doit déjà être connectée | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
pairingTimeout |
Integer | Non | Millisecondes à attendre la fin de l'appairage | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | 20000 |
Paramètres de sortie
La tâche BLE Pairing ne produit aucune sortie. En cas de succès, l'état de bond de l'appareil devient BONDED.
Exceptions
| Code | Nom de l'exception | Description |
|---|---|---|
BLE-TASK-001 |
Bluetooth désactivé | Le Bluetooth est désactivé sur l'appareil. |
BLE-TASK-002 |
Bluetooth non supporté | Cet appareil ne supporte pas le Bluetooth. |
ERROR-001 |
Permission non accordée | BLUETOOTH_SCAN ou BLUETOOTH_CONNECT n'a pas été accordée. |
GPS-ERROR-003 |
Localisation désactivée | La localisation de l'appareil est désactivée — requise par Android pour le BLE. |
BLE-TASK-003 |
Format MAC invalide | mac_ble n'est pas une adresse MAC Bluetooth valide. |
BLE-TASK-005 |
MAC BLE déconnectée | L'appareil n'est pas actuellement connecté. |
BLE-TASK-006 |
MAC BLE non enregistrée | L'appareil n'a jamais été connecté via Ble_connect dans cette session. |
BLE-TASK-011 |
Aucune connexion GATT active | Aucune connexion GATT active disponible pour cet appareil. |
BLE-TASK-014 |
Erreur de pairing | Le processus de bonding a échoué (l'appareil est passé à BOND_NONE après BOND_BONDING). |
BLE-TASK-013 |
Timeout de pairing | Le bonding n'a pas terminé dans le délai pairingTimeout. |
Diagramme d'exécution
flowchart TD
Start([▶ Ble_pairing]) --> Prereq{BLE activé, supporté,\npermissions, localisation OK ?}
Prereq -->|Non| E1[❌ BLE-TASK-001/002\nERROR-001/GPS-ERROR-003]
Prereq -->|Oui| CheckMac{mac_ble valide,\nconnectée, enregistrée ?}
CheckMac -->|Non| E2[❌ BLE-TASK-003/005/006/011]
CheckMac -->|Oui| CheckBond{Déjà\nappairé ?}
CheckBond -->|Oui| Info[ℹ️ Log : déjà appairé]
CheckBond -->|Non| CreateBond[🔗 createBond]
CreateBond --> Wait{État de bond changé\ndans pairingTimeout ?}
Wait -->|BONDED| Success1[✅ Appairé]
Wait -->|BOND_NONE| E3[❌ BLE-TASK-014\nPAIRING_ERROR]
Wait -->|Timeout| E4[❌ BLE-TASK-013\nPAIRING_TIMEOUT]
Info --> Success([✅ VoidResult])
Success1 --> Success
E1 --> Error([❌ Exception])
E2 --> Error
E3 --> Error
E4 --> Error
style Start fill:#e3f2fd
style Success fill:#c8e6c9
style Error fill:#ffcdd2
style CreateBond fill:#fff9c4
Comment ça fonctionne :
- Vérifications préalables : Bluetooth activé/supporté, permissions, localisation.
- Vérifications de connexion :
mac_bledoit être un appareil valide, actuellement connecté et enregistré (lèveBLE-TASK-003/005/006/011sinon). - Déjà appairé ? : si oui, journalise et retourne.
- Créer le bond : appelle
createBond()d'Android et écoute la diffusion de changement d'état de bond. - Résultat :
BONDED→ succès ;BOND_NONEaprèsBOND_BONDING→BLE-TASK-014; aucune réponse danspairingTimeout→BLE-TASK-013.
Détails des paramètres d'entrée
1. Paramètre d'entrée : mac_ble
L'adresse MAC de l'appareil déjà connecté avec lequel s'appairer.
Exemple
2. Paramètre d'entrée : pairingTimeout
Durée d'attente de la fin du processus de bonding, en millisecondes.
Exemple
Détails
- Optionnel — vaut
20000(20 secondes) par défaut. - Résolu à l'exécution — peut référencer une
$variable.