蓝牙配对模式 java_【Android】蓝牙开发—— 经典蓝牙配对介绍(Java代码实现演示)附Demo源码...

本文主要讨论如何使用Java代码实现经典蓝牙的配对,包括两种情况:系统蓝牙第一次连接设备时的配对和仅配对不连接。文中详细介绍了连接、配对及解除配对的方法,并提供了四种配对模式的演示,包括PIN码、确认、密钥和无操作模式。此外,还补充说明了已配对设备连接时的情况。
摘要由CSDN通过智能技术生成

目录

前言

一、连接&配对方法介绍

二、演示:第一次连接蓝牙设备  &  直接与蓝牙设备建立配对

三、总结

四、补充

五、Demo案例源码地址:

前言

前面两篇文章【Android】蓝牙开发——经典蓝牙(附完整Demo)和【Android】蓝牙开发——经典蓝牙配对介绍(通过手机系统蓝牙演示),分别介绍了经典蓝牙的开发流程以及通过手机系统蓝牙演示经典蓝牙的四种配对方式,今天这篇文章主讨论Java代码实现经典蓝牙的配对。经典蓝牙需要进行配对,一般有两种情况下:

1、系统蓝牙第一次连接设备时,需要进行配对操作。(这里“第一次”指的是系统蓝牙没有与设备建立配对)

2、系统蓝牙与设备只进行配对操作,不建立连接。

注意:如果系统蓝牙已经与设备建立了配对,连接设备时就不再进行配对操作。

一、连接&配对方法介绍

1、连接方法

BluetoothDevice.createRfcommSocketToServiceRecord(UUID)

2、配对&解除配对方法(通过反射)

/**

* 与设备配对 参考源码:platform/packages/apps/Settings.git

* /Settings/src/com/android/settings/bluetooth/CachedBluetoothDevice.java

*/

@SuppressWarnings("unchecked")

static public boolean createBond(@SuppressWarnings("rawtypes") Class btClass, BluetoothDevice btDevice)

throws Exception {

Method createBondMethod = btClass.getMethod("createBond");

Boolean returnValue = (Boolean) createBondMethod.invoke(btDevice);

return returnValue.booleanValue();

}

/**

* 与设备解除配对 参考源码:platform/packages/apps/Settings.git

* /Settings/src/com/android/settings/bluetooth/CachedBluetoothDevice.java

*/

@SuppressWarnings("unchecked")

static public boolean removeBond(Class btClass, BluetoothDevice btDevice)

throws Exception {

Method removeBondMethod = btClass.getMethod("removeBond");

Boolean returnValue = (Boolean) removeBondMethod.invoke(btDevice);

return returnValue.booleanValue();

}

二、演示:第一次连接蓝牙设备  &  直接与蓝牙设备建立配对

每一种配对模式下,左边的图是演示第一次连接蓝牙设备,右边图是直接与蓝牙设备建立配对。

第一次连接蓝牙设备,即只调用上面的连接方法。

直接与蓝牙设备建立配对,即只调用上面的配对方法。

(测试手机为荣耀9 Android 9系统,不同的手机样式可能会有所不同)

(1)pincode模式

(2)confirm模式

39cc6921d476fbd6c730e38d8470217c.png

(3)passkey

df8909e65388b90867dfbed1817e611c.png

(4)justwork

908f1267d589835834c161671f90ee17.png            3529305d1e0bd136b75626c4717dc6cd.png

三、总结

仔细比对上面4种配对模式下的2组图,可以发现:

1、pincode、confirm、passkey三种配对模式,第一次连接蓝牙设备与直接配对蓝牙设备均会弹出配对框。

2、而justwork配对模式,第一次连接蓝牙设备会弹出配对框,而直接配对蓝牙设备不会弹出配对框。

四、补充

下面演示一下,“如果系统蓝牙已经与设备建立了配对,连接设备时就不再进行配对操作”的情况,以pincode模式为例:

五、Demo案例源码地址:

https://gitee.com/lilium_foliage/Android-Bluetooth

好的,关于蓝牙配对模式的问题,我可以给你一些基本的解释和思路。 首先,蓝牙设备通常有两种配对模式:传统配对模式和简单配对模式。传统配对模式需要输入 PIN 码或者确认码进行配对,而简单配对模式则不需要输入任何信息,只需要按下按钮或者触摸屏幕即可完成配对。 对于 Java BLE 开发,你可以使用 BLE API 来实现配对和绑定。具体实现过程如下: 1. 获取蓝牙适配器 首先,你需要获取 BluetoothAdapter 对象。你可以使用 getSystemService() 方法来获取 BluetoothManager 对象,进而获取 BluetoothAdapter 对象。 ``` BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter(); ``` 2. 扫描设备 使用 BluetoothAdapter.startLeScan() 方法可以扫描近的 BLE 设备。扫描到设备后,你可以将其添加到列表中。 ``` bluetoothAdapter.startLeScan(callback); ``` 3. 连接设备 当你选择一个设备时,你需要使用 connectGatt() 方法来连接设备。该方法会返回一个 BluetoothGatt 对象,你可以使用该对象来与设备进行通信。 ``` BluetoothDevice device = ...; BluetoothGatt gatt = device.connectGatt(this, false, gattCallback); ``` 4. 发现服务 连接成功后,你需要发现设备的服务。你可以使用 BluetoothGatt.discoverServices() 方法来发现服务。 ``` gatt.discoverServices(); ``` 5. 通信 连接成功并且服务发现成功后,你可以使用 BluetoothGattCharacteristic 来进行通信。你可以使用 BluetoothGatt.writeCharacteristic() 方法向设备写入数据,使用 BluetoothGatt.readCharacteristic() 方法读取设备的数据。 6. 断开连接 当你完成通信后,你需要使用 disconnect() 方法来断开连接。 ``` gatt.disconnect(); ``` 这是一个简单的 BLE 设备配对和绑定的实现过程。当然,具体的实现过程可能会因为不同的设备而有所不同,你需要仔细阅读设备的文档和示例代码来完成开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值