对于我的应用程序,我进行蓝牙发现搜索列出所有可用的蓝牙设备.如果我在一个有很多电脑等的房间,有一个很长的列表.所以我想从列表中过滤Android手机.
我阅读了以下文档:http: //developer.android.com/reference/android/bluetooth/BluetoothClass.Device.html和http://developer.android.com/reference/android/bluetooth/BluetoothClass.Device.Major. HTML
所以我可以过滤一些设备,如笔记本电脑,电脑等.
有谁知道Android手机有什么可能的常数?我不想冒过滤太多设备的风险,但我也想将列表限制为仅限Android设备.
任何提示?
蓝牙服务类是标准化的.根据班级中的哪些位,您可以确定设备是否是计算机.实际上,该类可以公开关于每个decice的许多有用信息.
查看hcid.conf的联机帮助页.该页面描述了如何构建类:
http://linux.die.net/man/5/hcid.conf
如上文所述:
示例:class 0x02hhhh:设备提供网络服务主要设备类分配:
Run Code Online (Sandbox Code Playgroud)0x00: Miscellaneous 0x01: Computer (desktop,notebook, PDA, organizers, .... )
编辑:其他一些说明:
默认情况下,Android手机不处于可发现模式.所以很有可能,除非您在设备上启动了可发现模式,否则您发现的任何设备都不会成为Android设备.
许多电话可以确定发现设备的RSSI(信号强度).此信息在发现期间作为传递到您的应用bundle extra.附近的设备通常具有比远程设备更高的RSSI.因此,您也可以通过"设备的接近程度"进行过滤.
用于各种设备的蓝牙MAC将具有一定范围.蓝牙MAC的前三个字节对应于硬件供应商......有许多供应商,但其中大多数不为手机制作蓝牙硬件.所以你也可以通过蓝牙MAC过滤 - 如果它在一个已知的范围内,它可能是一个Android.
| 归档时间: |
|
| 查看次数: |
6561 次 |
| 最近记录: |