【问题标题】:What are the bluetooth device classes of android phones?安卓手机的蓝牙设备类别有哪些?
【发布时间】:2017-07-24 18:19:33
【问题描述】:

对于我的应用程序,我进行了蓝牙发现搜索以列出所有可用的蓝牙设备。如果我在一个有很多计算机等的房间里,那么列表真的很长。所以我想从列表中过滤掉 Android 手机。

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

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

有人知道安卓手机可以有哪些可能的常量吗?我不想冒险过滤太多设备,但我也想将列表限制为仅 Android 设备。

有什么提示吗?

【问题讨论】:

    标签: android bluetooth


    【解决方案1】:

    蓝牙服务等级是标准化的。根据类中存在的位,您可以确定设备是否是计算机。事实上,这个类可以公开很多关于每个设备的有用信息。

    查看 hcid.conf 的手册页。这个页面描述了这个类是如何构建的:

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

    如上述文档所述:

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

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

    编辑: 其他一些注意事项:

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

    2. 许多手机可以确定已发现设备的 RSSI(信号强度)。此信息在发现过程中以bundle extra 的形式传递给您的应用程序。附近的设备通常比远处的设备具有更高的 RSSI。因此,您还可以按“设备的距离”进行过滤。

    3. 用于各种设备的蓝牙 MAC 将具有一定的范围。蓝牙MAC的前三个字节对应Hardware Vendor...厂商很多,但大多不做手机蓝牙硬件。因此,您还可以通过蓝牙 MAC 进行过滤 - 如果它在已知范围内,则可能是 Android。

    【讨论】:

      【解决方案2】:

      这里是android文档中列出的设备类的链接

      BluetoothClass.Device.Major

      BluetoothClass.Device

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-27
        • 1970-01-01
        • 2019-10-23
        • 2015-01-22
        • 1970-01-01
        相关资源
        最近更新 更多