找到配对的Android蓝牙设备是否在范围内的正确方法?

Mig*_*gne 11 android bluetooth

我想要编写一个充当蓝牙客户端的应用程序.我想要做的是弄清楚什么是最好的方法来判断我支持的特定设备是否在范围内,而不是一直尝试对其进行BluetoothDevice.connect()并且失败如果它不在范围内 这里我们假设设备已经配对.

我担心尝试连接到特定设备直到它在范围内是不好的做法.在我看来这对电池来说会有坏处.

有谁知道应该用来完成我想要做的事情的任何方法或概念?

谢谢!

Ali*_*raf 0

好的,据我从你的问题中了解到,你想获取与你配对的设备的名称,以及它是否在范围内?

所以这是解决方案:-

  1. 创建一个名为 DeviceDetails 的类:

类DeviceDetails{ 公共字符串名称; 公共字符串地址;公共蓝牙设备远程设备;}

  1. 您需要按照此处的说明连接并配对您的设备,完成此操作并建立连接后,创建一个 DeviceDetails 对象。

  2. DeviceDetails selectedDevice;如果您有一个自定义适配器来显示设备列表,则将视图的位置传递给 selectedDevice 引用。例子 :-selectedDevice = adapter.getItem(pos);

  3. 现在您已经选择了要配对的 SelectedDevice 对象,因此您可以将其地址和名称保存在

    优先。

    Example:- 
    savePairedDeviceInfo(selectedDevice.name, selectedDevice.address);
        public void savePairedDeviceInfo(String name, String addr)
            {
                if(name != null && !name.equalsIgnoreCase(""))
                    editor.putString(PNAME_OF_DEVICE, name);
    
                if(addr != null && !addr.equalsIgnoreCase(""))
                    editor.putString(MAC_ADDRESS_OF_DEVICE, addr);
    
                editor.commit();
            }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 现在,下次当您想要检查配对设置是否完成时,可以通过从首选项中获取值来检查设备的名称和地址。使用检查(如果条件)返回 true,表明配对的旧设备是相同的或其他设备。

  5. 如果配对设备在范围内,您将获得相同的值,否则它将尝试与其他设备配对。

如果您从我的解释中理解或不理解,请告诉我。