主要参考文档 Qt on Android 蓝牙通信开发
主要踩坑:
在搜索蓝牙时需要有ACCESS_COARSE_LOCATION权限,并且手机定位功能一定要打开,我就是因为没有开手机定位,卡了一天为什么搜索不到蓝牙。
在代码中设置蓝牙权限:
#include <QtAndroid>
#define ACCESS_COARSE_LOCATION "android.permission.ACCESS_COARSE_LOCATION"
bool BluetoothProxy::checkPermission()
{
qDebug() << "to check";
QtAndroid::PermissionResult r = QtAndroid::checkPermission(ACCESS_COARSE_LOCATION);
if(r == QtAndroid::PermissionResult::Denied) {
qDebug() << "checking";
QtAndroid::requestPermissionsSync( QStringList() <<ACCESS_COARSE_LOCATION ,10);
r = QtAndroid::checkPermission(ACCESS_COARSE_LOCATION);
if(r == QtAndroid::PermissionResult::Denied) {
qDebug() << "check flase";
return false;
}
qDebug() << "check true";
}
return true;
}
制作的蓝牙界面
最终的demo如下:
qt安卓蓝牙程序
本文地址:https://blog.csdn.net/weixin_42454034/article/details/107885359