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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在一定距离内发现设备相关的知识,希望对你有一定的参考价值。

如以下主题中所述: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,接收信号越强。

以上是关于如何在一定距离内发现设备的主要内容,如果未能解决你的问题,请参考以下文章

熊猫如何在一个系列中找到其差异在一定距离内的连续值

如何在一定程度范围内为UIView的旋转设置动画?

如何相对于图中的距离创建从单个节点传播的边

html中如何让单元格中的文字离左边框一定距离

如何从片段内的列表视图打开链接网址?

如何在kotlin的片段内显示网格视图?