最近我用qt写了一个Android应用程序.
但是我有一个很大的问题,我可以使用/调用一些原生的Android APIS,比如调用特殊活动吗?
例如,在Android SDK中,我在java中调用联系人:
Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent,PICK_CONTACT);
是否有一些用于java android sdk API的c ++包装器库?
或者如果我需要一些特殊组件(用java编写),我可以在我的qt android程序中使用它吗?
或者使用"纯qt"和"标准java"或"C++ android NDK"的混合页面/活动制作程序?
(我问这个问题,因为我有MOSYNC框架的经验,这是一个很好的,但你只限于它自己的库,你不能使用任何外部库或Android标准API,...)
提前致谢.
编辑: 根据JNI的改进( http://qt-project.org/doc/qt-5/qtandroidextras-index.html),我有一个问题:我可以使用'任何'android Java第三方库吗? qt项目?当我在Java SDK项目中使用这些库时?
我刚刚从 Windows 10 切换到在最新 Apple M1 Silicon 上运行的 Mac 操作系统。
这是我在 Mac 上的第一个项目,我安装了homebrew并用它来安装节点和纱线:
brew install node
brew install yarn
yarn global add @vue/cli
Run Code Online (Sandbox Code Playgroud)
我的 Vue 项目在 Windows 和 Linux 上都运行良好,将其克隆到我的 Macbook 上,然后运行yarn以安装依赖项(一切照常),然后尝试在开发模式下运行该应用程序:
yarn serve
Run Code Online (Sandbox Code Playgroud)
但每次运行时我都会收到随机的“断言失败”错误yarn serve,每次都是不同的文件,但错误消息和上下文相同:
/node_modules/axios/lib/helpers/buildURL.jsAssertion failed: (thread_id_key != 0x7777), function find_thread_id_key, file ../src/coroutine.cc, line 134.
error Command failed with signal "SIGABRT".
Run Code Online (Sandbox Code Playgroud)
这是什么原因造成的?尝试过谷歌搜索,但正如我所想,几乎什么也没找到!
我希望我的应用程序在纵向和反向纵向模式下工作。换句话说,我希望它在纵向模式下工作并使其可旋转180度!
我在清单中MainActivity的<activity>标记内使用以下代码。
android:screenOrientation="sensorPortrait"
Run Code Online (Sandbox Code Playgroud)
但是,这似乎仅适用于Android 4.1.2及更高版本。
在Android 4.2.2及更高版本上不起作用!
我在不同的电话上尝试过,结果相同!怎么解决呢?
android portrait rotation screen-orientation android-sensors
我想获取网页的源(HTML),例如StackOverflow的主页.
这是我到目前为止编码的内容:
QNetworkAccessManager manager;
QNetworkReply *response = manager.get(QNetworkRequest(QUrl(url)));
QString html = response->readAll(); // Source should be stored here
Run Code Online (Sandbox Code Playgroud)
但没有任何反应!当我尝试获取html字符串的值时,它是空的("").
那么该怎么办?我正在使用Qt 5.3.1.
myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H
#include <QDebug>
#include <QObject>
class MyClass : public QObject
{
public:
MyClass();
public slots:
void buttonClicked();
void buttonClicked(QString &in);
};
#endif // MYCLASS_H
Run Code Online (Sandbox Code Playgroud)
myclass.cpp
#include "myclass.h"
MyClass::MyClass()
{
}
void MyClass::buttonClicked()
{
// Do Something
}
void MyClass::buttonClicked(QString &in)
{
qDebug() << in;
}
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include <QApplication>
#include <QQmlApplicationEngine>
#include <myclass.h>
#include <QQmlContext>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
MyClass myClass; // A class containing my functions
// Trying …Run Code Online (Sandbox Code Playgroud)