如以下主题中所述:How to find the devices in the range by using bluetooth?
Android应用程序可以获取该范围内的设备列表(启用蓝牙)
我的问题是,如果有任何方法可以将发现范围限制在某个半径,例如1米?
谢谢,本
您可以使用BluetoothDevice.EXTRA_RSSI
来获得信号强度。然而,它不会非常准确,因为它是可变的。
private final BroadcastReceiver receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action)) {
short rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI, Short.MIN_VALUE);
System.out.println("RSSI: " + rssi + "dBm");
}
}
};
您获得的价值在dBm
。一个非常接近的设备将具有介于-20 dBm和-40 dBm之间的rssi,具体取决于设备(内置蓝牙设备,天线,设备的实际方向)。您可以测试您获得的值,以定义1米的平均“dBm范围”。值越接近0,接收信号越强。