Articles of qt

如何防止Android设备从Qt应用程序进入hibernate状态

我正在Android上部署Qt应用程序,需要阻止设备进入待机状态(否则,我的线程被中断,我的BLE连接也会丢失)。 我在SO上发现: 如何阻止Android设备以编程方式进入睡眠状态? 应该执行这个Java代码: PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, “My Tag”); wl.acquire(); // screen and CPU will stay awake during this section wl.release(); 但是如何在我的Qt应用程序中实现它?

Qt可以在Android中运行吗?

我正在研究Qt,我想知道Qt是否可以在Android上运行,因为我想买一台平板电脑,它的操作系统是android。

通过Android上的Qt app调用(显式)意图调用外部活动 – putExtra不起作用

我有以下问题:在Android上我的基于Qt的应用程序(Qt 5.4.1 for mobile)通过启动显式意图来调用外部活动。 如果没有数据附加到intent,这种方法非常有效。 但是当我使用putExtra附加字符串等时,目标活动找不到此数据。 Qt应用程序的片段: QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod(“org/qtproject/qt5/android/QtNative”, “activity”, “()Landroid/app/Activity;”); if (activity.isValid()) { QAndroidJniObject intent(“android/content/Intent”, “()V”); if (intent.isValid()) { QAndroidJniObject action = QAndroidJniObject::fromString(“test.app.DO_SOMETHING”); if (action.isValid()) { intent.callObjectMethod(“setAction”, “(Ljava/lang/String;)Landroid/content/Intent;”, action.object()); QAndroidJniObject subject = QAndroidJniObject::fromString(“test_subject”); QAndroidJniObject text = QAndroidJniObject::fromString(“test_text”); jint flag = QAndroidJniObject::getStaticField(“android/content/Intent”, “FLAG_GRANT_READ_URI_PERMISSION”); intent.callObjectMethod(“addFlags”, “(I)V”, flag); intent.callObjectMethod(“putExtra”, “(Ljava/lang/String;Ljava/lang/string;)Landroid/content/Intent;”, subject.object(), text.object()); if (intent.isValid()) activity.callObjectMethod(“startActivity”, […]

Qt – 包android.support.v4.app不存在

我正在使用Qt 5.4。 我导入了SDK和NDK。 实际上,我试图使用多行通知,我在java文件中使用了这一行: customMainActivity.java: import android.support.v4.app.NotificationCompat; NotificationCompat.Builder builder = new NotificationCompat.Builder( context); 我收到一个错误: 包android.support.v4.app不存在 我读它并且它添加了android-support-v4.jar和android-support-v7-appcompat.jar但我不知道如何在Qt中修复它。

用于C ++和平台本机代码(iOS,Android)之间通信的跨平台库

我知道这已经被问过很多次了,但是在现有的SO答案中我找不到任何我想要的东西。 基本上,我们即将创建具有以下function的复杂移动应用程序: 使用OpenGL进行3D图形渲染 集成了摄像头,加速度计,陀螺仪等硬件function 使用网络(HTTP) 本地数据库(SQLite) 硬盘使用情况 zip文件和加密(OpenSSL) 与第三方硬件(例如连接到平板电脑的第三方传感器)集成,并带有自己的SDK 我们希望此应用在iOS,Android和Windows环境中运行。 考虑了许多解决方案,包括Qt,Xamarin和其他解决方案,但在如此复杂的用例中使用这些框架似乎风险很大。 我们现在要考虑的是本机构建每个应用程序,但在共享C ++库中维护尽可能多的共享代码。 例如,我们想为各种function制作C ++组件,例如: 与服务器的HTTP通信 文件加密 商业逻辑 … 但是,存在一定的问题。 目前尚不清楚,我们如何在库中连接原生UI层和C ++代码。 从Java或Obj-C代码调用库函数很容易,但是其中许多函数会调用一些异步任务(调用HTTP url,将文件转储到磁盘)。 目前尚不清楚如何将此类异步任务的结果传播回UI代码。 我们理想的是一些MvvM架构,其中Views完全是特定于平台的,但是Models和部分ViewModel是用C ++编写的。 此外,这种架构通常使用“服务” – 那些也可以具有特定于平台的接口,但是C ++核心。 有没有已知的方法来提供这种集成? 也许有一些库在UI代码和库之间提供“中间层”? 或许我们的方法根本不可行,在这种情况下你会建议什么?

使用Qt lib与本机JNI Android应用程序时出现QNetwork错误

我有简单的Qt lib,它可以像这样生成http请求: QNetworkAccessManager networkAccessManager; QNetworkRequest request{QUrl(“http://www.google.ru”)}; QNetworkReply * reply = networkAccessManager.get(request); … 当我在Qt Creator上从Android设备( armeabi-v7a和x86 )上运行它时,一切正常。 但我想在NDK和JNI android本机应用程序中使用它。 在这种情况下,它仅适用于armeabi-v7a设备和Android 6.0版本。 如果我在x86设备上使用此lib运行android应用程序,它将崩溃并显示下一条消息: 致命信号11(SIGSEGV)在0x00000000(代码= 1),线程11830(itekllc.testjni) 它出现在我的Qt lib中的这行代码中: QNetworkReply * reply = networkAccessManager.get(request); 这是我在原生android项目中的communication.cpp文件: #include #include “QCoreApplication” #include “testandroidthreadslib.h” #ifndef _Included_com_navitekllc_testjni_CppWrapper #define _Included_com_navitekllc_testjni_CppWrapper #ifdef __cplusplus extern “C” { #endif JNIEXPORT void JNICALL Java_com_navitekllc_testjni_CppWrapper_testNetwork(JNIEnv *env, jclass type) { TestAndroidThreadsLib […]

Qt Android:如何显示原生文件对话框?

我不确定是否可能,但目前,当我显示一个打开的文件对话框时: QString file = QFileDialog::getOpenFileName(this); 显示的对话框不是Android的原生对话框。 相反,它看起来像这样(它也没有最大化): 我正在使用Qt 5.2.0 for Android。

Qt Creator:找不到适用于Android的有效工具包

在下载QT android(Windows 5.1)的候选版本后,我决定启动QT Creator并尝试创建一个android项目(小东西看看它是否有效)。 按照教程后我添加了所有(mips除外)android工具包。 当我做一个常规的QT应用程序时,它告诉我它看到所有的android工具包,如果我使用它启动模拟器。 但问题是,当我创建一个QT移动应用程序时,它告诉我没有有效的工具包。

部署到Android会导致在添加QtQuick控件后找不到文件

导入QtQuick.Controls 1.2并使用StackedWidget组件后,我现在在部署到Android时遇到错误,如下所示。 Android构建目录中没有丢失文件AnimationDrawable.qml所以我不明白为什么它没有与APK一起打包。 当我删除导入的QtQuick.Controls并用其他东西替换StackView时它部署得很好。 我的Qt版本是5.4.2。 我尝试使用Qt 5.3.2部署它,它按预期工作。 E/Qt (12767): Can’t create main activity E/Qt (12767): java.io.FileNotFoundException: –Added-by-androiddeployqt–/qml/QtQuick/Controls/Styles/Android/drawables/AnimationDrawable.qml E/Qt (12767): at android.content.res.AssetManager.openAsset(Native Method) E/Qt (12767): at android.content.res.AssetManager.open(AssetManager.java:313) E/Qt (12767): at android.content.res.AssetManager.open(AssetManager.java:287) E/Qt (12767): at org.qtproject.qt5.android.bindings.QtActivity.copyAsset(QtActivity.java:394) E/Qt (12767): at org.qtproject.qt5.android.bindings.QtActivity.extractBundledPluginsAndImports(QtActivity.java:503) E/Qt (12767): at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:582) E/Qt (12767): at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:895) E/Qt (12767): at android.app.Activity.performCreate(Activity.java:5990) E/Qt (12767): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) E/Qt […]

从QT app(com.android.settings)打开android设置

我在QT有一个Android应用程序。 我想从一个按钮调用android设置。 我在Java中使用了这段代码: public void usb(View v){ Intent intent = new Intent(); intent.setClassName(“com.android.settings”, “com.android.settings.DevelopmentSettings”); startActivity(intent); } 有没有办法使用QT C ++调用android设置?