QGroundControl深度开发(1)-蓝牙问题

gitup下载的最新的QGC,android编译后,蓝牙总是搜索不到。从console看到两条Err,是permission的问题。但是这两句话程序里是查不到的,是一个没有出现在程序里的QT的permission类出了问题。但是这个类怎么用,为什么出错也是一头雾水。

从网上搜索了很多方法,各种权限设置,包括手动改手机权限,都没有用。

网上下载了一个蓝牙遥控器程序,编译后是可以搜索蓝牙设备的,但是也没发现和QGC的蓝牙部分程序有什么太大差异。

后来看QT6.6.3自带的蓝牙例程(名字大概是**heart**game),发现里面进去后有一段权限判断的程序,这段程序也是qt官网帮助文档里的,即:

#if QT_CONFIG(permissions)
    QBluetoothPermission permission{};
    permission.setCommunicationModes(QBluetoothPermission::Access);
    switch (qApp->checkPermission(permission)) {
    case Qt::PermissionStatus::Undetermined:
        qApp->requestPermission(permission, this, &BluetoothConfiguration::startScan);
        return;
    case Qt::PermissionStatus::Denied:
        //setError(tr("Bluetooth permissions not granted!"));
        //setIcon(IconError);
        return;
    case Qt::PermissionStatus::Granted:
        break; // proceed to search
    }
  #endif // QT_CONFIG(permissions)

这段程序会查询权限,权限不够会弹出对话框申请权限。

把这段程序添加到qgc里蓝牙扫描那个函数里,再次编译,安装。运行程序后,第一次运行会弹出申请权限的对话框(有个申请fine location权限,但是这个权限明明在AndroidManifest.xml里添加过了,搞不懂为什么),允许后就能找到蓝牙了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值