Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

L'API Web Bluetooth

Non standard
Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

Cette API est disponible sur Firefox OS pour des applications internes seulement.

L'API WebBluetooth permet à une application web de se connecter à des périphériques Bluetooth. C'est une API complètement expérimentale et non-standard, elle n'est actuellement disponible que pour les applications certifiées. Cependant, il y a de bonnes raisons d'avoir une telle API disponible ; cette question sera examinée dans le cadre du groupe de travail des applications système du W3C .

Remarque: Les développeurs d'applications qui souhaitent envoyer des données à un périphérique Bluetooth peuvent utiliser share activity. Cette activity permet seulement le partage d'images, d'audio, de vidéo et de contenu vCard.

Aperçu de l'API

Le principal point d'entrée de l'API est la propriété Navigator.mozBluetooth qui retourne un objet BluetoothManager.

Interfaces de base

Les interfaces suivantes fournissent une application avec les fonctionnalités de base Bluetooth

BluetoothManager
Permet l'accès à tous les adaptateurs Bluetooth disponibles sur l'appareil. Des adaptateurs sont l'interface de connexion pour connecter un autre périphérique Bluetooth à l'appareil actuel.
BluetoothAdapter
Utilisé pour traiter toutes les opérations demandées par les réseaux Bluetooth.
BluetoothClassOfDevice
Fournit identifiant / informations d'un périphérique Bluetooth distant, disponible au stade recherche.
BluetoothDevice
Fournit des informations concernant un périphérique Bluetooth distant.
BluetoothDiscoveryHandle
Utilisé pour notifier à l'application en cours de la découverte d'un périphérique Bluetooth distant.
BluetoothPairingHandle
Contient les fonctionnalités nécessaires pour achever une opération de connexion, y compris les clés d'accès, et les mécanismes pour répondre aux codes PIN saisis par l'utilisateur et confirmer des codes d'authentification.
BluetoothPairingListener
Définit les gestionnaires d'événements déclenchés pour différentes opérations d'appariement.

Interfaces Gatt

Les interfaces suivantes permettent à Firefox OS de communiquer avec les services basés sur Gatt (Generic Attribute Profile) sur les périphériques distants Smart/LE(intelligent/basse énergie).

BluetoothGatt
Handles de communications initiales et de connexions avec les services Gatt.
BluetoothGattServer
Fournit des fonctionnalités serveur Bluetooth GATT pour permettrent la création de services et caractéristiques Bluetooth Smart/LE.
BluetoothGattService
Représente un service fourni par un serveur GATT, y compris la définition du service, la liste des services inclus, et la liste des caractéristiques de ce service.
BluetoothGattCharacteristic
Représente une caractéristique de service GATT, qui comprend la définition de la caractéristique, la valeur des propriétés et les informations de configuration, et la liste de descripteurs qui fournissent des informations connexes.
BluetoothGattDescriptor
Représente un descripteur GATT, qui contient des informations connexes sur une valeur caractéristique.

Interfaces d'événements Bluetooth

Ces objets représentent différents événements ayant lieu au sein d'une interaction Bluetooth.

BluetoothAdapterEvent
Donne accès à l'objet BluetoothAdapter et à son adresse comme paramètre d'un gestionnaire d'événement adapteradded ou adapterremoved (voir BluetoothManager.onadapteradded et BluetoothManager.onadapterremoved).
BluetoothAttributeEvent
Permet d'accéder à des attributs modifiés et à leurs nouvelles valeurs par le paramètre attributechanged du gestionnaires d'événements (y compris BluetoothManager.onattributechanged, BluetoothAdapter.onattributechanged et BluetoothDevice.onattributechanged ).
BluetoothDeviceEvent
Fournit un accès à un périphérique trouvé/apparié (BluetoothDevice) ou à l'adresse ou à un dispositif non apparié comme paramètre d'un gestionnaire d'événement devicefound, devicepaired ou deviceunpaired.
BluetoothGattCharacteristicEvent
Fournit un accès à une mise à jour BluetoothGattCharacteristic comme paramètre du gestionnaire BluetoothGatt.oncharacteristicchanged, lorsque l'événement characteristicchanged est déclenché.
BluetoothLeDeviceEvent
Permet d'accéder à un objet BluetoothDevice de LE, à sa valeur RSSI et son annonce d'enregistrement, par le paramètre d'un gestionnaire d'événement devicefound (voir BluetoothDiscoveryHandle.ondevicefound).
BluetoothPairingEvent
Permet d'accéder à un nom de dispositif et à l'objet BluetoothPairingHandle requis pour l'association de périphériques (incluant par exemple BluetoothPairingListener.ondisplaypasskeyreq et BluetoothPairingListener.onenterpincodereq).

Les messages du système

Comme certaines actions de périphériques distants peuvent nécessiter le réveil d'une application pour les manipuler, il y a plusieurs messages système liés à Bluetooth:

  • bluetooth-dialer-command
  • bluetooth-cancel
  • bluetooth-hid-status-changed
  • bluetooth-pairing-request
  • bluetooth-opp-transfer-complete
  • bluetooth-opp-update-progress
  • bluetooth-opp-receiving-file-confirmation
  • bluetooth-opp-transfer-start

Note : une application peut réagir à ces messages en les demandant dans son fichier manifeste et en utilisant la fonction navigator.mozSetMessageHandler() pour définir un gestionnaire de messages.

Interfaces obsolètes

BluetoothStatusChangedEvent
Fournit un accès à l'information concernant tout changement d'état d'un périphérique Bluetooth.

Spécifications

Spécification Statut Commentaires
Web Bluetooth Projet Brouillon. Ne fait partie d'aucune spécification à l'heure actuelle. Doit être discuté avec le W3C's System Applications Working Group.

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support simple Pas de support Pas de support Pas de support Pas de support Pas de support
Fonctionnalité Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Bluetooth 'v2' support Pas de support Pas de support Pas de support 2.1 Pas de support Pas de support Pas de support Pas de support
Bluetooth initial support: BluetoothManager, BluetoothAdapter, BluetoothDevice, BluetoothDeviceEvent, BluetoothStatusChangedEvent Pas de support Pas de support Pas de support 1.0.1 Pas de support Pas de support Pas de support Pas de support

Notes de compatibilité

  • L'API Web Bluetooth est implémenté dans Firefox OS 1.0.1 et au-dessus.
  • Cependant, sur Firefox OS <1.2, vous devez être prudent avec le partage de fichiers Bluetooth. Si vous partagez un fichier directement à partir de la SDCard vous êtes ok, mais si vous partagez un blob d'image directement depuis l'appareil via une application Web vous rencontrerez des problèmes, parce que Bluetooth attend un chemin d'accès valide via la SDCard (voir 1.0.1 B2G app Gaia Bluetooth). Ceci est fixé dans Firefox OS 1.2. Dans Firefox <1.2 vous auriez à écrire sur une carte SD via le périphérique de stockage, puis à transférer via Bluetooth.
  • Il y a une complication supplémentaire : le stockage du périphérique est uniquement disponible pour les applications privilégiées (empaquetées), donc si votre application est hébergée, vous ne pouvez pas utiliser le stockage de périphériques pour résoudre le problème ci-dessus.
  • Un autre problème que vous pouvez rencontrer lorsque vous tentez d'utiliser le partage de fichiers Bluetooth entre Firefox OS et un autre dispositif est que l'autre périphérique peut ne pas avoir de partage Bluetooth (Firefox OS est activé par défaut.) Pour exemple sur Mac OSX 10.9 il est allumé via System Preferences > Sharing > check "Bluetooth Sharing".  

Voir aussi

 

 

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight, goofy_bz, jmh
 Dernière mise à jour par : SphinxKnight,