2010-06-24 6 views
1

Pour mon application, je fais une recherche de découverte bluetooth pour lister tous les périphériques bluetooth disponibles. Si je suis dans une pièce avec beaucoup d'ordinateurs etc, il y a une liste vraiment longue. Donc, je voudrais filtrer les téléphones Android à partir des listes.Quelles sont les classes d'appareils Bluetooth des téléphones Android?

J'ai lu la documentation sous: http://developer.android.com/reference/android/bluetooth/BluetoothClass.Device.html et http://developer.android.com/reference/android/bluetooth/BluetoothClass.Device.Major.html

Je suis en mesure de filtrer certains appareils comme les ordinateurs portables, les ordinateurs, etc.

Quelqu'un sait quelles sont les constantes possibles qui peuvent téléphones Android avoir? Je ne veux pas risquer de filtrer trop d'appareils, mais je veux aussi limiter la liste aux seuls appareils Android.

Des indices?

Répondre

5

Les classes de service Bluetooth sont standardisées. Selon les bits présents dans la classe, vous pouvez déterminer si le périphérique est un ordinateur ou non. En fait, la classe peut exposer beaucoup d'informations utiles sur chaque décision.

Jetez un oeil à la page de manuel pour hcid.conf. Cette page décrit comment la classe est construite:

http://linux.die.net/man/5/hcid.conf

Comme indiqué dans ce qui précède doc:

Exemple: classe 0x02hhhh: l'appareil offre un service de réseau périphérique majeur allocation de classe:

0x00: Miscellaneous 

0x01: Computer (desktop,notebook, PDA, organizers, ....) 

EDIT: Quelques autres notes :

  1. Les téléphones Android ne sont pas en mode détectable par défaut. Il est donc probable qu'aucun de vos appareils détectés ne sera jamais un appareil Android à moins que vous n'ayez lancé le mode détectable sur un appareil.

  2. De nombreux téléphones peuvent déterminer le RSSI (intensité du signal) des périphériques détectés. Cette information est transmise à votre application lors de la découverte en tant que bundle extra. Les appareils à proximité auront généralement un RSSI plus élevé que les appareils distants. Ainsi, vous pouvez également filtrer par "la proximité de l'appareil".

  3. Le MAC Bluetooth utilisé pour divers périphériques sera de certaines plages. Les trois premiers octets du Bluetooth MAC correspondent au fournisseur de matériel ... Il existe de nombreux fournisseurs, mais la plupart d'entre eux ne fabriquent pas de matériel Bluetooth pour les téléphones. Donc, vous pouvez également filtrer par Bluetooth MAC - si elle se situe dans une plage connue, c'est probablement un Android.

Questions connexes