You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发安卓MP3播放器:Qt 6.4下获取QtAndroid.h头文件方法咨询

Qt 6.4 安卓权限获取替代方案(原QtAndroid.h适配)

Qt 6.4里找不到QtAndroid.h是正常情况——Qt6直接移除了Qt5中的QtAndroid类,把安卓原生交互相关API整合到了Qt Android Extras模块,头文件结构也做了调整。按以下步骤解决:

  • 先给项目添加模块依赖:
    • 用CMake的话,在CMakeLists.txt里加这两行:
      find_package(Qt6 REQUIRED COMPONENTS AndroidExtras)
      target_link_libraries(你的项目名称 PRIVATE Qt6::AndroidExtras)
      
    • 用QMake的话,直接在.pro文件里追加:
      QT += androidextras
      
  • 替换头文件:把原来的#include <QtAndroid.h>改成#include <QtAndroidExtras/QtAndroid>
  • 权限申请代码示例(以MP3文件访问需要的存储/音频权限为例):
    #include <QtAndroidExtras/QtAndroid>
    #include <QDebug>
    
    void requestAudioAccessPermission() {
        const QString storagePerm = "android.permission.READ_EXTERNAL_STORAGE";
        // Android 13及以上需额外申请音频媒体权限
        const QString audioPerm = "android.permission.READ_MEDIA_AUDIO";
    
        auto storageStatus = QtAndroid::checkPermission(storagePerm);
        auto audioStatus = QtAndroid::checkPermission(audioPerm);
    
        if (storageStatus == QtAndroid::PermissionResult::Denied || audioStatus == QtAndroid::PermissionResult::Denied) {
            QtAndroid::requestPermissionsSync({storagePerm, audioPerm});
            storageStatus = QtAndroid::checkPermission(storagePerm);
            audioStatus = QtAndroid::checkPermission(audioPerm);
            
            if (storageStatus == QtAndroid::PermissionResult::Granted && audioStatus == QtAndroid::PermissionResult::Granted) {
                qDebug() << "权限已获取,可正常访问MP3文件";
                // 此处编写文件读取逻辑
            } else {
                qDebug() << "权限被拒绝,无法访问音频文件";
            }
        } else {
            qDebug() << "权限已存在,直接执行文件操作即可";
            // 此处编写文件读取逻辑
        }
    }
    
  • 配置AndroidManifest.xml:在文件中添加权限声明
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
    

原Qt5的QtAndroid文档涵盖的功能,在Qt6中都可通过Android Extras模块实现,仅API细节略有调整,按上述操作即可完成适配。

内容的提问来源于stack exchange,提问作者keehl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:21:03