2016-06-20 1 views
1

J'essaie d'écrire une abstraction multi-plateforme via Bluetooth. Quand il s'agit d'identifier les périphériques (ou les périphériques, comme iOS les appelle), je suis un peu perplexe.Mécanisme d'identification de périphérique bluetooth compatible avec la plate-forme

iOS inclut une propriété identifier, qui est un ID généré attribué à un périphérique la première fois qu'il se connecte. Cependant, Android ne semble pas avoir un concept équivalent. Le mieux que je puisse faire est d'utiliser BluetoothDevice.getAddress, qui renvoie une adresse MAC. Je peux ensuite transformer cela en un UUID en faisant un peu de byte twiddling.

Y a-t-il quelque chose de mieux que je puisse faire ici pour identifier de manière unique les dispositifs d'une manière agnostique?

+0

puisque iOS et Android ne signalent pas un identifiant cohérent Je ne crois pas qu'il existe une option pour vous qui fournira un identifiant multi-plateforme – Paulw11

Répondre

0

Comme vous l'avez déjà remarqué, vous ne pouvez pas utiliser la propriété identifier pour identifier un périphérique sur iOS.

La bonne façon de le faire est d'annoncer un service avec la valeur d'une caractéristique que vous pouvez contrôler le dispositif A et découvrir ce sur le dispositif B.

Selon ce que vous voulez atteindre, il y a aussi vous sdks peut utiliser pour la découverte de l'appareil, par exemple newaer, p2pkit ou google à proximité pour n'en nommer que quelques-uns. Clause de non responsabilité: Je travaille pour Uepaa, en développant p2pkit.io pour Android et iOS.