如何在一定距离内发现设备

问题描述 投票:0回答:1

如以下主题中所述:How to find the devices in the range by using bluetooth?

Android应用程序可以获取该范围内的设备列表(启用蓝牙)

我的问题是,如果有任何方法可以将发现范围限制在某个半径,例如1米?

谢谢,本

android bluetooth
1个回答
0
投票

您可以使用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,接收信号越强。

© www.soinside.com 2019 - 2024. All rights reserved.