什么是Android手机的蓝牙设备类?

1 android bluetooth

对于我的应用程序,我进行蓝牙发现搜索列出所有可用的蓝牙设备.如果我在一个有很多电脑等的房间,有一个很长的列表.所以我想从列表中过滤Android手机.

我阅读了以下文档:http: //developer.android.com/reference/android/bluetooth/BluetoothClass.Device.htmlhttp://developer.android.com/reference/android/bluetooth/BluetoothClass.Device.Major. HTML

所以我可以过滤一些设备,如笔记本电脑,电脑等.

有谁知道Android手机有什么可能的常数?我不想冒过滤太多设备的风险,但我也想将列表限制为仅限Android设备.

任何提示?

Bra*_*ein 5

蓝牙服务类是标准化的.根据班级中的哪些位,您可以确定设备是否是计算机.实际上,该类可以公开关于每个decice的许多有用信息.

查看hcid.conf的联机帮助页.该页面描述了如何构建类:

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

如上文所述:

示例:class 0x02hhhh:设备提供网络服务主要设备类分配:

0x00: Miscellaneous

0x01: Computer (desktop,notebook, PDA, organizers, .... )
Run Code Online (Sandbox Code Playgroud)

编辑:其他一些说明:

  1. 默认情况下,Android手机不处于可发现模式.所以很有可能,除非您在设备上启动了可发现模式,否则您发现的任何设备都不会成为Android设备.

  2. 许多电话可以确定发现设备的RSSI(信号强度).此信息在发现期间作为传递到您的应用bundle extra.附近的设备通常具有比远程设备更高的RSSI.因此,您也可以通过"设备的接近程度"进行过滤.

  3. 用于各种设备的蓝牙MAC将具有一定范围.蓝牙MAC的前三个字节对应于硬件供应商......有许多供应商,但其中大多数不为手机制作蓝牙硬件.所以你也可以通过蓝牙MAC过滤 - 如果它在一个已知的范围内,它可能是一个Android.