如何在基于 qt qml 的应用程序中访问 Android 设备中的外部存储(sdcard/usb)?

问题描述 投票:0回答:1

我正在创建一个针对 android 13(API 33)的视频播放器应用程序。我使用的是 Qt Creator 9.0.1,qt 版本是 6.4.0。使用 qml 中的视频组件,可以从内部存储播放视频。但我需要播放 USB 上的视频,该怎么做?

<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

我已在 android 清单文件中添加了上述权限。如果未授予权限,我也会请求运行时权限。

auto r = QtAndroidPrivate::checkPermission(QtAndroidPrivate::Storage).result();

    QtAndroidPrivate::checkPermission(QtAndroidPrivate::Storage).result();
    if (r == QtAndroidPrivate::Denied)
    {
        qDebug()<<"denied";
        r = QtAndroidPrivate::requestPermission(QtAndroidPrivate::Storage).result();
        if (r == QtAndroidPrivate::Denied)
            return false;
    }
    return true;

仍然无法播放 USB 上的视频,我错过了什么?

android qt qml android-permissions android-sdcard
1个回答
0
投票

在 Android 13 上,您实际上不需要请求这些权限,用户需要使用文件对话框请求权限,对于位于

QFileDialog
下的 Qt,因此要访问外部存储下的某些视频文件,请使用 https ://doc.qt.io/qt-6/qfiledialog.html#getOpenFileName 为您提供一个文件网址,您可以打开并读取其内容。

© www.soinside.com 2019 - 2024. All rights reserved.