Классы обслуживания Bluetooth стандартизированы.В зависимости от того, какие биты присутствуют в классе, вы можете определить, является ли устройство компьютером или нет.На самом деле, класс может предоставить много полезной информации о каждом решении.
Загляните на страницу руководства для hcid.conf.На этой странице описывается, как создается класс:
http://linux.die.net/man/5/hcid.conf
Как указано в приведенном выше документе:
Пример: класс 0x02hhhh: устройство предлагает сетевую службуРаспределение классов основных устройств:
0x00: Miscellaneous
0x01: Computer (desktop,notebook, PDA, organizers, .... )
РЕДАКТИРОВАТЬ: Несколько других примечаний:
По умолчанию телефоны Android не находятся в режиме обнаружения.Так что, скорее всего, ни одно из ваших обнаруженных устройств никогда не будет устройством Android, если вы не включили режим обнаружения на устройстве.
Многие телефоны могут определять RSSI (уровень сигнала) обнаруженных устройств.Эта информация передается вашему приложению во время обнаружения как bundle extra
.Соседние устройства обычно имеют более высокий RSSI, чем удаленные устройства.Таким образом, вы также можете фильтровать по «как близко устройство».
Bluetooth MAC, используемый для различных устройств, будет иметь определенные диапазоны.Первые три байта Bluetooth MAC соответствуют поставщику оборудования ... Есть много поставщиков, но большинство из них не делают аппаратное обеспечение Bluetooth для телефонов.Таким образом, вы также можете фильтровать по Bluetooth MAC - если он попадает в известный диапазон, это, вероятно, Android.