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énementadapteradded
ouadapterremoved
(voirBluetoothManager.onadapteradded
etBluetoothManager.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 comprisBluetoothManager.onattributechanged
,BluetoothAdapter.onattributechanged
etBluetoothDevice.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énementdevicefound
,devicepaired
oudeviceunpaired
. BluetoothGattCharacteristicEvent
- Fournit un accès à une mise à jour
BluetoothGattCharacteristic
comme paramètre du gestionnaireBluetoothGatt.oncharacteristicchanged
, lorsque l'événementcharacteristicchanged
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énementdevicefound
(voirBluetoothDiscoveryHandle.ondevicefound
). BluetoothPairingEvent
- Permet d'accéder à un nom de dispositif et à l'objet
BluetoothPairingHandle
requis pour l'association de périphériques (incluant par exempleBluetoothPairingListener.ondisplaypasskeyreq
etBluetoothPairingListener.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