降低 Android 设备上的蓝牙信号强度

Posted

技术标签:

【中文标题】降低 Android 设备上的蓝牙信号强度【英文标题】:Reduce Bluetooth signal strength on Android device 【发布时间】:2019-09-25 05:41:35 【问题描述】:

是否有高级(Java)或低级方式(使用本机代码)将 android 设备上的蓝牙信号强度降至最低?

目标是使设备在 20 厘米范围内可被发现? 在 Internet 上根本找不到任何关于此的内容。

【问题讨论】:

扫描时如果想过滤掉距离较远的设备,可以使用rssi参数获取信号强度。 RSSI 不是您可以用来测量与其他设备的准确距离的东西。我的意思是你可以试试,但准确度不是很好。正如这里提到的altbeacon.github.io/android-beacon-library/…:“在大约 1 米附近,您可以看到 0.5-2 米之间的距离估计” 【参考方案1】:

您可以在 android 上使用自定义 BLE 广告来执行此操作,您可以使用以下模式来设置您的蓝牙发现范围。

//Use AdvertiseSettings class

ADVERTISE_MODE_BALANCED : Perform Bluetooth LE advertising in balanced power mode.
ADVERTISE_MODE_LOW_LATENCY : Perform Bluetooth LE advertising in low latency, high power mode.
ADVERTISE_MODE_LOW_POWER : Perform Bluetooth LE advertising in low power mode.

ADVERTISE_TX_POWER_LOW : Advertise using low TX power level.

ADVERTISE_TX_POWER_ULTRA_LOW : Advertise using the lowest transmission (TX) power level. 

参考detail 文档

【讨论】:

昨天我尝试了 ADVERTISE_MODE_LOW_POWER 和 ADVERTISE_TX_POWER_ULTRA_LOW。该设备在 3 米内可被发现,这对于我的目标(20 厘米)是不可接受的。但是您正确回答了我的问题,我可能应该接受它,但是如果可以使用低级方式控制TX功率,请等待其他cmets? 您可以在如此短的距离内使用接近传感器 哇!这是个好主意,我会考虑这个

以上是关于降低 Android 设备上的蓝牙信号强度的主要内容,如果未能解决你的问题,请参考以下文章

从 Windows 上的 RSSI 检测蓝牙信号强度

蓝牙 LE 信号强度 Linux

iOS如何检测类似于Airpods的蓝牙信号强度?

Android:获取附近的所有蜂窝运营商及其信号强度

来自蓝牙信标的信号强度不一致 - Kontakt.io

Watch OS 2:是不是可以获得配对的 iPhone 和 Apple Watch 之间连接的蓝牙信号强度?