QT5.14.2 在安卓手机上选择文件并获取文件内容

目录

1.配置AndroidManifest.xml文件

2.代码


1.配置AndroidManifest.xml文件

先选择好release构建目录,我的构建目录为D:\work\code\QTProject\sbox\release

什么都不做先直接realse运行(以得到原生的AndroidManifest.xml文件)

运行成功之后在构建目录里有一个android-build目录,进入该目录

复制AndroidManifest.xml文件

在自己的项目目录里新建一个android目录,把复制的AndroidManifest.xml文件放到这个目录里

在.pro文件里增加语句:

QT       += core gui androidextras
DISTFILES +=  android/AndroidManifest.xml

这个路径是你复制的AndroidManifest.xml所放置的路径,不能是release构建目录里的AndroidManifest.xml,因为每次构建都会重载,重载之后就不是你所修改保存的AndroidManifest.xml了

添加语句之后,AndroidManifest.xml就可以在项目里看到了,双击打开AndroidManifest.xml

在最下面的下拉选项框中找到我标红的这几个,依次点击”Add“,保存

2.代码

#include <QFileDialog>
#include <QFileInfo>
#include <QStandardPaths>
#include <QTextCodec>
#include <QTextStream>

....

void Widget::checkAndRequestPermission() {//设置访问外部存储的权限
    auto result = QtAndroid::checkPermission("android.permission.READ_EXTERNAL_STORAGE");
    if (result == QtAndroid::PermissionResult::Denied) {
        QtAndroid::requestPermissionsSync(QStringList() << "android.permission.READ_EXTERNAL_STORAGE");
        result = QtAndroid::checkPermission("android.permission.READ_EXTERNAL_STORAGE");
        if (result == QtAndroid::PermissionResult::Denied) {
            qDebug() << "Permission denied";
            return;
        }
    }
}
bool Widget::openTextByIODevice(const QString &aFileName)//打开文件
{
    //用IODevice方式打开文本文件
    QFile aFile(aFileName);

    if (!aFile.exists()) //文件不存在
    {
        qDebug() << "文件不存在" ;
        QMessageBox::warning(this, "错误", "文件不存在");
        return false;
    }
    if (!aFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qDebug() << "文件打开失败" ;        
        QMessageBox::warning(this, "错误", "文件打开失败");
        return false;
    }
    QTextStream in(&aFile);
    // 设置编码
    const QString encoding = "GBK";
    in.setCodec(QTextCodec::codecForName(encoding.toUtf8()));
    QString text =  in.readAll();
    qDebug() << "text:" <<  text;
    aFile.close();
    return true;

}
void Widget::on_openFileBtn_clicked()//上传文件
{
    checkAndRequestPermission();
    QFileDialog dialog(this);
    dialog.setWindowTitle("选择文件");
    dialog.setFileMode(QFileDialog::AnyFile); // 设置文件模式为任意文件
    dialog.setViewMode(QFileDialog::Detail); // 设置视图模式为详细模式

    if (dialog.exec() == QDialog::Accepted) {
        QStringList fileNames = dialog.selectedFiles();
        if (!fileNames.isEmpty()) {
            QString fileName = fileNames.first();
            openTextByIODevice(fileName);
         


        }
    }

}
...

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是Qt 5.14.2在Windows环境下搭建安卓开发环境的步骤: 1. 下载并安装Java Development Kit (JDK) 官网下载地址:https://www.oracle.com/java/technologies/javase-downloads.html 安装完成后,设置JAVA_HOME环境变量,指向JDK的安装路径。 2. 下载并安装Android Studio 官网下载地址:https://developer.android.com/studio 安装完成后,打开Android Studio,点击“Configure” -> “SDK Manager”,进入SDK Manager界面。 3. 安装Android SDK 在SDK Manager界面,选择“SDK Platforms”标签页,勾选对应的Android版本,然后点击“Apply”按钮进行安装。 然后选择“SDK Tools”标签页,勾选“Android SDK Command-line Tools”,然后点击“Apply”按钮进行安装。 4. 配置环境变量 在系统环境变量中添加ANDROID_HOME变量,指向Android SDK的安装路径。 然后在Path变量中添加%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;%ANDROID_HOME%\tools\bin; 5. 安装Qt 下载并安装Qt 5.14.2,官网下载地址:https://www.qt.io/download-open-source 6. 配置Qt 打开Qt Creator,点击“Tools” -> “Options”,进入“Devices”界面。 点击“Add”按钮,选择“Android Device”类型,并填写相应的参数,如下: - Name: 自定义名称 - Device type: Phone/Tablet - Vendor: Google - Platform: Android - Firmware: 对应的Android版本 - ABI: armeabi-v7a (如果使用x86架构模拟器,则选择x86) - SDK: 对应的Android SDK版本 - NDK: 对应的Android NDK版本 - Qt Versions: 添加Qt 5.14.2,选择对应的编译器 7. 编译和运行 在Qt Creator中创建一个新的Android项目,然后编译和运行即可。 以上就是在Windows环境下搭建Qt 5.14.2安卓开发环境的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值