Android学习之BlueTooth编程
1、总体概述
Android为蓝牙技术提供了4个工具类,分别是蓝牙适配器BluetoothAdapter、蓝牙设备BluetoothDevice、蓝牙服务端套接字BluetoothServerSocket和蓝牙客户端套接字BluetoothSocket。
1.1、本地蓝牙适配器 BluetoothAdapter
BluetoothAdapter是所有蓝牙交互的入口,只有先使用这个类,
才能够发现其他的蓝牙设备,
才能够查询已配对设备的列表,
才能够使用已知的MAC地址来实例化一个BluetoothDevice对象,
才能够创建一个BluetoothServerSocket对象来监听与其他设备的通信。
方法
getDefaultAdapter:静态方法,获取默认的蓝牙适配器对象;
enable:打开蓝牙功能;
disable:关闭蓝牙功能;
isEnable:判断蓝牙功能是否打开;
startDiscovery:开始搜索周围的蓝牙设备;
cancelDiscovery:取消搜索操作;
isDiscovering:判断当前是否正在搜索设备;
getBondedDevices:获取已绑定的设备列表;
setName:设置本机的蓝牙名称;
getName:获取本机的蓝牙名称;
getAddress:获取本机的蓝牙地址;
getRemoteDevice:根据蓝牙地址获取远程的蓝牙设备;
getState:获取本地蓝牙适配器的状态;
listenUsingRfcommWithServiceRecord:根据名称和UUID创建并返回BluetoothServiceSocket;
listenUsingRfcommOn:根据渠道编号创建并返回BluetoothServiceSocket。
1.2、 蓝牙设备BluetoothDevice
BluetoothDevice用于指代某个蓝牙设备,通常表示对方设备。BluetoothAdapter管理的是本机蓝牙设备。注意区分…
getName:获得该设备的名称;
getAddress:获得该设备的地址;
getBondState:获得该设备的绑定状态;
createBond:创建匹配对象;
createRfcommSocketToServiceRecord:根据UUID创建并返回一个BluetoothSocket。
1.3、 蓝牙服务器套接字BluetoothServiceSocket
BluetoothServiceSocket是服务端的Socket,用来接收客户端的Socket连接请求。
accept:监听外部的蓝牙连接请求;
close:关闭服务端的蓝牙监听。
1.4、 蓝牙客户端套接字BluetoothSocket
BluetoothSocket是客户端的Socket,用于与对方设备进行数据通信。
connect:建立蓝牙的socket连接;
close:关闭蓝牙的socket连接;
getInputStream:获取socket连接的输入流对象;
getOutputStream:获取socket连接的输出流对象;
getRemoteDevice:获取远程设备信息。
1.5、 UUID
UUID相当于一个蓝牙设备和另外一个蓝牙通讯的”秘钥”!不同的蓝牙通讯用不同的秘~而我们与单片机通讯的是 00001101-0000-1000-8000-00805F9B34FB
,即蓝牙串口服务。
2、编程要点
包括四个工具类的定义,权限的开启特别是对于Android6.0以上的系统
2.1、 四个工具类的定义
...
//声明变量
BluetoothAdapter mBluetoothAdapter;//创建蓝牙适配器
private List<BluetoothDevice> deviceList = new ArrayList<BluetoothDevice>();//创建BluetoothDevice列标
private BluetoothSocket mmSocket;//创建socket
OutputStream mmOutStream;//输出流 - 发送数据
InputStream mmInputStream;//输入流 - 接收数据
...
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
2.2、 权限的加入
<!--蓝牙权限必备-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
- 1
- 2
- 3
- 4
- 5
3、例程下载
移步github。
文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。
原文链接:recclay.blog.csdn.net/article/details/82873967
- 点赞
- 收藏
- 关注作者
评论(0)