当前位置: 首页 > 知识库问答 >
问题:

我们可以像配对经典蓝牙设备一样配对BLE设备吗?

龚威
2023-03-14

我使用与蓝牙低功耗(BLE)相同的代码来配对设备,就像我用于经典蓝牙配对一样。我不确定该代码是否适用于BLE,因为我目前或以后没有BLE设备要测试(只有客户端可以测试)。

我的蓝牙经典配对代码-

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        final BluetoothDevice device = mLeDeviceListAdapter.getDevice(position);
        if (device == null) return;

        Boolean isBonded = false;
        try {
            isBonded = createBond(device);           
        } catch (Exception e) {
            e.printStackTrace(); 
        }
        Log.i("Log", "The bond is created: "+isBonded);
}

public boolean createBond(BluetoothDevice btDevice)  
    throws Exception  
    { 
        Class class1 = Class.forName("android.bluetooth.BluetoothDevice");
        Method createBondMethod = class1.getMethod("createBond");  
        Boolean returnValue = (Boolean) createBondMethod.invoke(btDevice);  
        return returnValue.booleanValue();  
    }

这里的每个列表项都是需要绑定的设备。

所以我们点击这个项目,然后它就会被上面的代码绑定。(这适用于经典的蓝牙配对)。

相同的代码是否适用于BLE配对?

我没有找到BLE设备的任何配对代码,也没有找到任何与配对相关的在线/官方信息。这很奇怪。

共有3个答案

微生毅
2023-03-14

您只能在特殊的绑定模式下与BLE设备绑定(但设备可以一直在该模式下工作,我的猜测)。阅读设备手册以弄清楚这一点。绑定后,您可以以GAT-Client身份连接到设备(您也可以创建GAT-server,如果提供,设备将以GAT-clien身份连接到您的服务器)

柳钟展
2023-03-14

Android实现BLE,目前支持作为中心模式,这意味着如果你想像BT classic一样配对,配对请求实现应该在你想要连接的外围目标远程BLE设备上实现,BLE过程是扫描BLE服务,连接并启用通知和读/写特征。希望能帮助,问候

冯淳
2023-03-14

绑定的工作方式与蓝牙BR/EDR和LE大致相同,所以你应该很好。

代码中,您可以只执行以下操作:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    final BluetoothDevice device = mLeDeviceListAdapter.getDevice(position);
    if (device == null) return;

    device.createBond();

    Log.i("Log", "The bonding started");
}

我不确定课堂反思和尝试/抓住障碍会为你做什么。在得到ACTION\u BOND\u STATE\u CHANGED事件之前,您无法知道绑定尝试的结果。API中都有描述。

连接后始终执行绑定,BluetoothDevice对象不一定连接。所以你可以做一个设备。连接GATT(…)首先调用,然后在接收到onConnectionStateChange事件后调用createBond。但我相信,该设备只需调用createBond即可尝试连接。

 类似资料:
  • 我正在Visual Studio 2015中用C语言为运行Windows IoT Core的Raspberry PI 2设备开发。 对于我的应用程序,我需要配对和取消配对蓝牙设备 我可以获得配对/未配对/所有蓝牙设备的列表吗<类似于内置管理网站的蓝牙页面(http://[设备IP]:8080/Bluetooth.htm) 我找到了一个例子(https://github.com/Microsoft/

  • 我正在尝试枚举所有与我的设备配对的蓝牙设备。在设置中,我可以查看配对的设备,但以下代码不返回任何项目: 我看过这篇和其他使用这种方法的帖子,但我似乎无法让它发挥作用。 我在Manifest.xml有以下权限: 此外,如果我将其中一个已配对的设备置于发现模式并进行扫描,则该设备会以已配对的状态返回。如果我检查: 从扫描中,它返回true。 我做错了什么或不理解什么?

  • 我想查找没有已配对设备的蓝牙设备。但是我的python脚本显示了我配对的设备上的蓝牙设备。如何只过滤打开的设备并忽略电脑中的配对设备,而不删除它们。 这是我的剧本

  • 问题内容: 我正在创建一个应通过蓝牙连接到特定设备的应用程序。 无论设备是否已配对,我都希望我的应用程序与此设备连接。 现在我有这个 但是此功能仅连接到配对的设备。如果我的设备尚未配对,我想将其配对。不知道该怎么做。 有人可以给我任何建议吗? 问题答案: 首次请求权限。 然后使您的设备可发现: 然后创建一个 BroadcastReceiver 来监听系统中的动作: 并通过注册以下 Boardcas

  • 我在连接时遇到问题。起初它有效,而不是不起作用,除非我取消配对设备。我已经得到了所有可能发生的异常,套接字关闭,管道关闭,连接被拒绝,端口已经在使用中,等等。 我知道android 4.2之前版本的蓝牙存在问题(https://code.google.com/p/android/issues/detail?id=37725). 我在连接这些设备时遇到问题的设备: Htc one(Android4.

  • deviceName String deviceId String