Qt部分
QtOnAndroid.pro文件配置
首先在.pro文件中加入
QT += bluetooth
如下图所示:
mainwindow.ui
在写逻辑之前,我们应该先把界面设计好,如下图所示:
上图中有三个按钮,分别是btn_bluetooth,btn_update,pushbutton(未用到)
一个QListWidget ,name为 listWidget。
mainwindow.h
下面我们需要添加qt关于蓝牙部分的头文件
#include <QBluetoothAddress>
#include <QBluetoothDeviceDiscoveryAgent>
#include <QBluetoothDeviceInfo>
#include <QBluetoothLocalDevice>
#include <QBluetoothSocket>
现在为整个蓝牙部分的运行添加一些槽函数
private slots:
void on_btn_bluetooth_clicked();//开启蓝牙
void findFinish();//搜索蓝牙设备结束
void connectOK();//连接成功
void connectNot();//连接失败
void connectBLE(QListWidgetItem *);//连接指定蓝牙设备
void addBlueToothDevicesToList(QBluetoothDeviceInfo info);//添加搜索到的蓝牙设备
void on_btn_update_clicked();//搜索周围蓝牙设备
上面这些函数的作用看名字基本也就明白是什么意思了。
再添加一些成员
QBluetoothDeviceDiscoveryAgent *discoveryAgent;
QBluetoothLocalDevice *localDevice;
QBluetoothSocket *socket;
这样,mainwindow.h中配置也就完成了。
mainwindow.cpp
在界面初始化函数中,我们先初始化好需要的类,并设置好信号与槽的关联。
//初始化蓝牙搜索类
discoveryAgent = new QBluetoothDeviceDiscoveryAgent();
//为本地蓝牙创建描述类
localDevice = new QBluetoothLocalDevice();
// 给socket分配内存,限定套接字协议
socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);
//判断蓝牙是否开启,若开启则不可被选中并扫描周围蓝牙设备
if (localDevice->hostMode() == QBluetoothLocalDevice::HostPoweredOff) {
ui->btn_bluetooth->