目录

前言

一、连接&配对方法介绍

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

三、总结

四、补充

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

    

(3)passkey

     

(4)justwork

            

三、总结

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

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

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

四、补充

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

五、Demo案例源码地址:

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

【Android】蓝牙开发—— 经典蓝牙配对介绍(Java代码实现演示)附Demo源码相关推荐

  1. 微信小程序开发之文件上传下载应用场景(附Demo源码)

    微信小程序开发之文件上传下载应用场景(附Demo源码),Demo为小相册应用,源码在附件中,本示例需要腾讯云支持. http://www.henkuai.com/forum.php?mod=viewt ...

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

    目录 前言 一.连接&配对方法介绍 二.演示:第一次连接蓝牙设备  &  直接与蓝牙设备建立配对 三.总结 四.补充 五.Demo案例源码地址: 前言 前面两篇文章[Android]蓝 ...

  3. 【Android】蓝牙开发——经典蓝牙:配对与解除配对 实现配对或连接时不弹出配对框

    目录 一.配对方法 二.解除配对方法 三.配对/解除配对结果 四.justwork配对模式下,不弹出配对框 五.pincode配对模式下,不弹出配对框 六.小结 在之前的文章[Android]蓝牙开发 ...

  4. Android蓝牙开发 — 经典蓝牙BLE蓝牙

    一,前期基础知识储备 1)蓝牙是一种支持设备之间短距离通信的无线电技术(其他还包括红外,WIFI): 支持移动电话.笔记本电脑.无线耳机等设备之间进行信息的交换: Android支持的蓝牙协议栈:Bl ...

  5. Android蓝牙开发—经典蓝牙详细开发流程

    文章目录 开发流程 权限 核心API BlueToothAdapter getDefaultAdapter():获取BluetoothAdapter对象 判断设备是否支持蓝牙 判断蓝牙是否开启 get ...

  6. android pin码 经典蓝牙_Android蓝牙开发—经典蓝牙详细开发流程

    Android蓝牙开发-经典蓝牙详细开发流程 发布时间:2018-07-16 13:41, 浏览次数:637 , 标签: Android Android蓝牙开发前,首先要区分是经典蓝牙开发还是BLE( ...

  7. 计算机毕业设计Java健身房管理系统演示录像2021(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java健身房管理系统演示录像2021(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java健身房管理系统演示录像2021(源码+系统+mysql数据库+lw文档) 本源码技 ...

  8. Android 小应用之一个activity实现简易手电筒(内附免费源码)

    Android小应用之一个activity实现简易手电筒(内附免费源码) 1.activity代码 2.xml代码 3.资源文件代码 4.源码压缩包(免费) 今天爷爷说他手机更新之后找不到手电筒了,我 ...

  9. Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别

    找到一篇介紹BT与BLE使用差别的文章, 写的很清晰,看完基本明白了 ----------------------------------------------------------------- ...

最新文章

  1. java 图片处理 图片缩略图,java怎么生成图片缩略图,缩小图片,高清图片缩小
  2. 中石油训练赛 - 围栏翻新(思维+贪心+差分)
  3. zabbix 监控配置1
  4. neo4j图形界面_图形处理:betweeness中心性– neo4j的密码与graphstream
  5. BootstrapTable冻结表头(一)
  6. python类定义中__init__()_转:python学习——类中为什么要定义__init__()方法
  7. strip python里面是什么意思_python中的strip是什么意思
  8. 启动go服务_go微服务框架go-micro深度学习 rpc方法调用过程详解
  9. Greenplum技术浅析
  10. 常见排序算法的python实现
  11. 神经网络与深度学习第5章:卷积神经网络 阅读提问
  12. python飞机大战类_python微信飞机大战
  13. 药店收费系统服务器,智能药店收费管理系统
  14. 并行程序设计整理(一)
  15. [HNOI2015]亚瑟王 题解
  16. MATLAB 图像嵌入水印图像程序
  17. tim-js-sdk 登录、接收信息、发送消息
  18. STM32配置读取BMP280气压传感器数据
  19. ALPU-C防抄板加密芯片
  20. 学习笔记:Javafx获取系统中已经安装的字体

热门文章

  1. 怎么把多个html文件变成一个,word怎么把两页内容变成一页
  2. 使用ChatGPT可以下载全景图
  3. 文件名批量复制到表格,操作步骤
  4. UG\NX二次开发 创建并报告所有装配部件的文本UDO
  5. 源码阅读及理论详解《 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting 》
  6. vscode+go开发环境配置 win10
  7. Oracle查看表空间数据文件SQL
  8. Java使用itextpdf导出数据为PDF
  9. Firefly(流萤): 中文对话式大语言模型
  10. python pylab,什么是%pylab?