Android通信蓝牙HC-06思路

本文详细介绍了一种通过手机客户端连接蓝牙模块并进行双向通信的方法。包括蓝牙功能的开启、设备搜索、蓝牙socket的建立及数据收发等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这个项目中,手机端作为客户端,去连接到蓝牙模块上。而接受蓝牙模块发过来的信息的时候,是没有必要再创建服务器端的,我们只要一个不断监听对方消息的循环就行。

 

注意:在socket.connect();之前,我们需要执行bluetoothadapter.canceldiscovery();,这是为了停掉搜索设备,否则连接可能会变得非常慢,并且容易失败。

 

蓝牙开发中的几个关键步骤:

1、开启手机上的蓝牙功能。

2、搜索附近存在的蓝牙设备。

3、创建蓝牙socket,由socket获取device

4、发送和读取数据。

5、清场(断开各种线程,注销广播接收器等)

 

//主线条

Adapter  ---->   device  ----->  socket


//step1:取得默认的蓝牙适配器 

  1. private BluetoothAdapter mBtAdapter = BluetoothAdapter.getDefaultAdapter();  

//step2:强制开启蓝牙设备

  1. if(!mBtAdapter.isEnabled()){  
  2. mBtAdapter.enable();  
  3. }  

//step3:注册广播接收器,注意:开启step4即搜索设备前,应先注册广播接收器

//step4:开始搜索附近可以存在的蓝牙设备,之后系统会发送广播给广播接收器

  1. mBtAdapter.startDiscovery();  


//step5:根据搜索到的蓝牙设备的MAC地址,得到该设备</span>

  1. mBtDevice = mBtAdapter.getRemoteDevice(mBtAddress);  

//step6:开启客户端线程,线程里面完成了与SPP协议的连接

  1. mBtClientConnectThread = new clientThread();  
  2. mBtClientConnectThread.start(); 

//step7:取消搜索设备的动作,否则接下来的设备连接会失败
  1. mBtAdapter.cancelDiscovery(); 

//step8:根据device获取socket  
  1. mBtSocket = mBtDevice.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));  

//step9:连接socket
  1. mBtSocket.connect(); 

//step10,发送数据.
  1. sendMessageHandle(“要发送的数据”);  

//step10, 读取数据

(由于接收数据的线程已经打开,所以当有数据到来时,数据就自动赋给变量S了,而此时S就是我们读取的数据 )


//step11,清场(清场动作放在onDestroy里面)

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值