目录

前言

一、连接&配对方法介绍

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

三、总结

四、补充

五、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模式

【Android】蓝牙开发—— 经典蓝牙配对介绍(Java代码实现演示)附Demo源码_第1张图片    

 

(3)passkey

【Android】蓝牙开发—— 经典蓝牙配对介绍(Java代码实现演示)附Demo源码_第2张图片     

 

(4)justwork

             【Android】蓝牙开发—— 经典蓝牙配对介绍(Java代码实现演示)附Demo源码_第3张图片            【Android】蓝牙开发—— 经典蓝牙配对介绍(Java代码实现演示)附Demo源码_第4张图片

三、总结

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

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

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

四、补充

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

五、Demo案例源码地址:

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

更多相关文章

  1. android之获取设备唯一标识符
  2. Android学习路线(十六)支持不同设备
  3. Cellebrite Premium:一个访问iOS和高端Android设备的全面解决方案
  4. Android usb camera设备添加
  5. Google 内部演示文稿建议让部分合作商可提前拿到 Android
  6. 【源码】android新闻日报源码、android 企业级erp商业应用源码、
  7. Android 设备上实现串口的移植
  8. Android Wear之android穿戴式设备应用开发平台
  9. android蓝牙开发常用类

随机推荐

  1. Android(安卓)开发必读:如何成为一名优秀
  2. Android(安卓)pull解析XML数据
  3. Android中的广播机制
  4. android开发1:安卓开发环境搭建(eclipse+j
  5. Android(安卓)Studio 1.0 (稳定版) 完全
  6. Android如何让EditText不自动获取焦点
  7. 【Android】wifi开发
  8. Android实现程序前后台切换效果(类似QQ后
  9. Android应用程序的自动更新升级(自身升级
  10. Android(安卓)Camera 使用小结