蓝牙的配对

2024-06-20 03:58
文章标签 配对 蓝牙

本文主要是介绍蓝牙的配对,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

官方蓝牙Api
蓝牙之开启和关闭
蓝牙之扫描可连接设备

在这里插入图片描述

通过反射BluetoothDevice中的“createBond”和“removeBond”两个函数实现配对和移除配对

  • 创建配对
/*** 创建配对** @param device*/@RequiresApi(api = Build.VERSION_CODES.KITKAT)public void CreateBond(BluetoothDevice device){if (device==null)return;if (!BluetoothManager.newInstance().isBlueEnable()){return;}if (BluetoothManager.newInstance().getBluetoothAdapter().isDiscovering()){BluetoothManager.newInstance().getBluetoothAdapter().cancelDiscovery();}/**如果该蓝牙没有配对*/if (device.getBondState()==BluetoothDevice.BOND_NONE){try {//反射Method createBondMethod = device.getClass().getMethod("createBond");//配对密码
//                String pinPwd = "1234";
//                device.setPin(pinPwd.getBytes());Boolean returnValue = (Boolean) createBondMethod.invoke(device);returnValue.booleanValue();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
  • 取消配对
/*** 取消配对** @param device*/public void cancelBond(BluetoothDevice device){if (device==null)return;if (!BluetoothManager.newInstance().isBlueEnable()){return;}/**如果该蓝牙没有配对*/if (device.getBondState()==BluetoothDevice.BOND_NONE){try {//反射Method createBondMethod = device.getClass().getMethod("removeBond");Boolean returnValue = (Boolean) createBondMethod.invoke(device);returnValue.booleanValue();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
  • 通过广播接收配对状态

注册广播

public void  init(){IntentFilter filter4 = new IntentFilter(BluetoothDevice.ACTION_PAIRING_REQUEST);IntentFilter filter5 = new IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED);getContext(). registerReceiver(pinBlueReceiver,filter4);getContext(). registerReceiver(pinBlueReceiver,filter5);}

广播接收器

 public class PinBlueReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();Log.d(TAG, "action:" + action);BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);if (BluetoothDevice.ACTION_PAIRING_REQUEST.equals(action)){try {//1.确认配对Method setPairingConfirmation = device.getClass().getDeclaredMethod("setPairingConfirmation",boolean.class);setPairingConfirmation.invoke(device,true);//2.终止有序广播Log.d("order...", "isOrderedBroadcast:"+isOrderedBroadcast()+",isInitialStickyBroadcast:"+isInitialStickyBroadcast());//如果没有将广播终止,则会出现一个一闪而过的配对框。abortBroadcast();//3.调用setPin方法进行配对...Method removeBondMethod = device.getClass().getDeclaredMethod("setPin", new Class[]{byte[].class});Boolean returnValue = (Boolean) removeBondMethod.invoke(device, new Object[]{pin.getBytes()});} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}else if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(action)) {switch (device.getBondState()) {case BluetoothDevice.BOND_NONE:Log.d(TAG, "取消配对");break;case BluetoothDevice.BOND_BONDING:Log.d(TAG, "配对中");break;case BluetoothDevice.BOND_BONDED:Log.d(TAG, "配对成功");break;}}}}

这篇关于蓝牙的配对的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1077036

相关文章

开放式耳机好用?平价开放式耳机推荐?四款开放式的蓝牙耳机推荐

开放式耳机好用吗?有平价些的开放式耳机推荐吗?那这两个问题的回答当然是肯定的。 首先开放式耳机好不好用取决于对耳机的需求,因为开放式耳机其实是比较适用于需要注意周围环境、需要‌长时间佩戴舒适以及需要频繁与人交流的场景中,在这些场景下使用开放式耳机的话就会比较有优势。就例如跑步骑行健身等运动的时候,能够兼得佩戴舒适度的同时,增加一定的安全性;还有在办公学习的时候,会很适合长时间佩戴,能够方便和

Flutter 中的低功耗蓝牙概述

随着智能设备数量的增加,控制这些设备的需求也在增加。对于多种使用情况,期望设备在需要进行控制的同时连接到互联网会受到很大限制,因此是不可行的。在这些情况下,使用低功耗蓝牙(也称为 Bluetooth LE 或 BLE)似乎是最佳选择,因为它功耗低,在我们的手机中无处不在,而且无需连接到更广泛的网络。因此,蓝牙应用程序的需求也在不断增长。 通过阅读本文,您将了解如何开始在 Flutter 中开

开放式蓝牙耳机哪个品牌好用?盘点五款超优秀的开放式耳机!

开放式蓝牙耳机现在挺受欢迎的,它们最大的好处就是不塞耳朵,戴着舒服,特别适合长时间佩戴。而且,这种耳机能让你在听音乐的同时,还能听到周围的环境声,这样在外面运动或者骑车的时候就更安全。音质方面,现在的开放式耳机也做得越来越好,有些高端款式还有特别的技术来减少漏音,保护你的隐私。但是现在市场上的开放式耳机品牌太多了,很多人不知道怎么选?为了帮助您在众多选项中做出选择,我根据个人经验挑选了一些表现良好

Anroid BLE蓝牙(手机分别作为中心设备和外围设备)

蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙。  BLE蓝牙模块主要应用领域     1、移动扩展设备     2、汽车电子设备     3、健康医疗用品:心跳带、血压计等     4、定位应用:室内定位、井下定位等     5、近距离数据采集:无线

蓝牙--关于bta_ag_sdp.cc文件的讲解

讲解代表之前先简单介绍下HF和AG HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。 AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。 我们这边主要

蓝牙--关于bta_ag_sco.cc文件的讲解

讲解代表之前先简单介绍下HF和AG HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。 AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。 我们这边主要

500以内蓝牙耳机最良心推荐有哪些?四款百元平价必入机型盘点

面对市场上琳琅满目的蓝牙耳机品牌和型号,消费者往往感到困惑,特别是在预算有限的情况下,如何挑选出既满足质量又符合价格预期的产品似乎成了一项挑战,那么500以内蓝牙耳机最良心推荐有哪些?为了帮助大家轻松找到适合自己且价格合理的蓝牙耳机,我今天特别带来了四款百元平价必入机型盘点,下面,让我们一起深入了解这四款平价蓝牙耳机的各项性能,看看它们是否真正符合你的需求和预期。 500以内蓝牙耳机最良

构建STM32智能平衡车项目:PID控制算法与蓝牙通信技术

一、项目概述 项目目标和用途 本项目旨在设计和实现一款基于STM32单片机的平衡车。平衡车是一种新型的个人交通工具,广泛应用于短途出行、休闲娱乐等场景。通过本项目,我们希望能够实现一款具备良好稳定性和操控性的平衡车,能够在不同的地形上自如行驶。 解决的问题和带来的价值 平衡车的核心问题在于如何保持其平衡。传统的平衡车往往依赖于复杂的控制算法和高精度的传感器。通过本项目,我们将利用STM32

开放式蓝牙耳机哪个品牌好用?开放式耳机排行榜10强

开放式耳机是我觉得蓝牙耳机里最适合入手的耳机类型,它有很多使用场景的选择。平时外出办公的话,也很合适,我自己也算是外出办公的打工人了,我会比较喜欢一点点嘈杂的环境,就还挺适合的。 那平时下班健身就更不用说了,健身最适合戴耳机了,那入耳式就很容易掉,所以这时就该轮到开放式耳机登场了,挂耳式、耳夹式或者是挂脖式的佩戴设计都很适合运动健身。 所以,毋庸置疑,开放式耳机当然是好用且适合入手的。

哪个牌子的蓝牙耳机性价比高?四款全能高性价比机型盘点

在蓝牙耳机市场日益丰富的今天,消费者面对的选择多到令人眼花缭乱,从国际大牌到国产新秀,每个品牌都在努力推出具有独特卖点和特色功能的蓝牙耳机,那么在众多选择中,哪个牌子的蓝牙耳机性价比高?而这是一个值得深究的问题,为了帮助大家在众多品牌和机型中找到真正的高性价比之选,我细致的整理四款全能高性价比机型盘点,无论你是学生、上班族,还是热爱运动和旅行的人士,以下推荐的这四款耳机都将满足你对高性能和合理价格