Aller au contenu

BLE Disconnect

Résumé

  • Nom interne : Ble_disconnect
  • Catégorie : Bluetooth
  • Objectif : Fermer une connexion GATT BLE précédemment ouverte, pour un appareil spécifique ou pour tous les appareils connectés à la fois.
  • 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_SCAN
    • BLUETOOTH_CONNECT
    • Localisation de l'appareil activée (exigence Android pour les opérations BLE)

Description détaillée

La tâche BLE Disconnect ferme une connexion GATT précédemment ouverte par Ble_connect. Elle peut cibler un appareil spécifique via mac_ble, ou tous les appareils BLE actuellement connectés via disconnect_all.

Si l'appareil cible est déjà déconnecté (ou n'a jamais été connecté), la tâche ne fait rien et signale qu'il est déjà déconnecté.


Paramètres d'entrée

Paramètre Type Obligatoire Valeurs possibles Compatibilité Android Compatibilité AndroMate Défaut
mac_ble String Non¹ Une adresse MAC Bluetooth valide, ex. AA:BB:CC:DD:EE:FF Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 ""
disconnect_all Boolean Non true / false Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 false

¹ mac_ble est requis uniquement quand disconnect_all vaut false (le défaut) — il est ignoré quand disconnect_all vaut true.


Paramètres de sortie

La tâche BLE Disconnect ne produit aucune sortie.


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.

Diagramme d'exécution

flowchart TD
    Start([▶ Ble_disconnect]) --> Prereq{BLE activé, supporté,\npermissions, localisation OK ?}
    Prereq -->|Non| E1[❌ BLE-TASK-001/002\nERROR-001/GPS-ERROR-003]
    Prereq -->|Oui| Mode{disconnect_all ?}
    Mode -->|true| All[🔌 Déconnecter tous les appareils enregistrés]
    Mode -->|false| One{mac_ble\nenregistré ?}
    One -->|Oui| Single[🔌 Déconnecter mac_ble]
    One -->|Non| Info[ℹ️ Log : déjà déconnecté]

    All --> Success([✅ VoidResult])
    Single --> Success
    Info --> Success
    E1 --> Error([❌ Exception])

    style Start fill:#e3f2fd
    style Success fill:#c8e6c9
    style Error fill:#ffcdd2

Comment ça fonctionne :

  1. Vérifications préalables : Bluetooth activé/supporté, permissions accordées, localisation activée.
  2. disconnect_all: true : déconnecte tous les appareils BLE actuellement enregistrés.
  3. disconnect_all: false (par défaut) : déconnecte uniquement mac_ble, s'il est enregistré — sinon journalise qu'il est déjà déconnecté, sans erreur.

Détails des paramètres d'entrée

1. Paramètre d'entrée : mac_ble

L'adresse MAC Bluetooth à déconnecter. Requis sauf si disconnect_all vaut true.

Exemple

"mac_ble": "AA:BB:CC:DD:EE:FF"

2. Paramètre d'entrée : disconnect_all

Quand true, déconnecte tous les appareils BLE actuellement connectés et ignore mac_ble.

Exemple

"disconnect_all": true

Détails

  • Optionnel — vaut false par défaut.

Exemple JSON complet

{
  "Ble_disconnect": [
    {
      "id": "5",
      "title": "Déconnexion du capteur",
      "mac_ble": "AA:BB:CC:DD:EE:FF"
    }
  ]
}