android - 如何在 Java 中以编程方式找到蓝牙版本?
问题描述
对于蓝牙信标距离测量应用程序,我目前正在使用Android Beacon Library。
我正在用 2 台设备测试我的测量结果。一台设备支持蓝牙 5.0 (Samsung Galaxy s10+),另一部手机支持蓝牙 4.2 (Samsung Galaxy s7 edge)。在测试时,我发现如果手机在完全相同的位置,到信标的距离差异超过 100%。这是(我认为)因为信号强度不同。如果我能检测到用户手机的蓝牙版本,我想我可以解决这个问题。
有人知道你怎么能检测到吗?之前已经有人问过这个问题,但那是大约 8 年前的事了,当时不可能。也许有人在此期间发现了一种新方法......
解决方案
经过大量研究,我得出的结论是,仍然无法找到安卓手机的确切蓝牙版本。但我想出了一个解决方法。如果你看支持android 10的手机,几乎所有的手机都支持蓝牙5.0,不支持Android 10的手机几乎都有蓝牙4.x。因此,我现在通过查看 Android 版本并采取相应措施来找到 Android 手机的蓝牙版本。
我已经对其进行了测试,它在我的用例中运行良好。
推荐阅读
- python - 如何在 Python 中过滤和写入多个文件?
- java - MongoDB:“MongoSocketException:mongodb:提供节点名或服务名,或未知”
- sql-server - SQL Server:引用其他视图的视图列表
- javascript - API 和接口(对象类型)如何可供 JavaScript 使用?
- javascript - 将参数传递到 URL
- java - Java:ImageIcon - 图像文件更新,但 Java 框架中的图像图标没有
- android - 步进器内的日期选择器
- laravel - 通过回答安全问题手动重置密码而不发送电子邮件 - Laravel/auth
- r - 如何在ggplot lineplot中为具有相似颜色的多个子类着色?
- date - Applescript:通过添加具有奇怪行为的天数来增加月份