Android蓝牙开发(二)之蓝牙配对和蓝牙连接

131 阅读2分钟

进行配对,代码如下:

Method method = BluetoothDevice.class.getMethod("createBond");

Log.e(getPackageName(), "开始配对");

method.invoke(listdevice.get(position));

invoke传的参数就是要配对的设备(我这里是存在list中所以从list中取)

点击之后怎会弹出配对确认框,且必须被配对的手机也点击确认配对才可以配对成功如图:

同样的,如果我们想要配对的设备取消配对

只需要将creatBond改为removeBond

2.蓝牙连接:

配对成功之后,就可以进行蓝牙连接了,蓝牙连接操作比较耗时,可以在一个线程中进行:

调用自己定义的

connect(listdevice.get(position));

同样传递的参数也是设备device

首先声明蓝牙套接字:

private BluetoothSocket mBluetoothSocket;

mBluetoothSocket = bluetoothDevice.createRfcommSocketToServiceRecord(BltContant.SPP_UUID);

BltContant.SPP_UUID是一个UUID常量,至于UUID是什么,大家可以自行百度,因为详细的文章已经很多了。

连接的时候要先判断蓝牙是否在扫描,如果在扫描就停止扫描,并且没有连接才进行连接,代码如下:

if (bluetoothadapter.isDiscovering()) {

bluetoothadapter.cancelDiscovery();

}

if (!mBluetoothSocket.isConnected()) {

mBluetoothSocket.connect();

}

比如我们让其连接成功后,跳转到消息通讯界面,界面中有edittext输入框并显示当前连接的设备名称如图所示:

在这里我们需要注意的是,当连接成功时,我们要让被连接的那部手机也自动跳转到聊天页面,所以我们要开启蓝牙服务端等待设备的连接,当设备连接时,自动跳转页面,蓝牙服务端代码如下:

/**

  • 开启服务端

*/

public void startBluService() {

while (true) {

try {

if (getBluetoothServerSocket() == null){

Log.e("在这里获取的为空","在这里获取的为空");

}

bluetoothSocket = getBluetoothServerSocket().accept();

if (bluetoothSocket != null) {

APP.bluetoothSocket = bluetoothSocket;

EventBus.getDefault().post(new BluRxBean(SERVER_ACCEPT, bluetoothSocket.getRemoteDevice()));

最后是今天给大家分享的一些独家干货:

Android学习PDF+架构视频+面试文档+源码笔记

【Android开发核心知识点笔记】

【Android思维脑图(技能树)】

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【Android高级架构视频学习资源】