gpt4 book ai didi

java - 如何在 Qt for android 上获取应用程序参数

转载 作者:行者123 更新时间:2023-11-30 05:49:22 25 4
gpt4 key购买 nike

我有一个 Qt 应用程序,它具有在 AndroidManifest.xml 中定义的文件关联,因此当我在浏览器中选择一个文件时,我会得到一个关联应用程序的列表。我的应用程序在列表中,但是当我选择它时,文件路径没有传递到我的 main() 方法的 argv 列表中。路径是如何传递给应用程序的,我如何在 Qt/C++ 中使用它?

最佳答案

经过一些研究,我提出了以下可行的解决方案:

void loadAndroidFile()
{
#ifdef Q_OS_ANDROID
QAndroidJniObject activity = QtAndroid::androidActivity();
if (activity.isValid()) {
QAndroidJniObject intent = activity.callObjectMethod("getIntent", "()Landroid/content/Intent;");
if (intent.isValid()) {
QAndroidJniObject data = intent.callObjectMethod("getData", "()Landroid/net/Uri;");
if (data.isValid()) {
QAndroidJniObject path = data.callObjectMethod("getPath", "()Ljava/lang/String;");
if (path.isValid())
// Here path.toString() returns the path of the input file
QMetaObject::invokeMethod(rootComponent, "setSourcePath", Q_ARG(QVariant, QVariant("file://" + path.toString())));
}
}
}
#endif
}

关于java - 如何在 Qt for android 上获取应用程序参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27771311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com