android - [ native ] : Using Java functions & 3rd-party libraries in Qt for Android

标签 android qt mosync

<分区>

最近用qt写了一个android app。
但是我有一个很大的问题,我可以使用/调用一些原生的android API,比如调用特殊的 Activity 吗?

例如,在 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”的混合页面/Activity 的程序?

(我问这个问题是因为我有使用 MOSYNC 框架的经验,那是一个很好的框架,但你被限制在它自己的库中,你不能使用任何外部库或 android 标准 API,...)

提前致谢。

编辑: 根据 JNI 的改进( http://qt-project.org/doc/qt-5/qtandroidextras-index.html ), 我有个问题: 我可以在我的 qt 项目中使用“任何”Android Java 第三方库吗?当我在 Java SDK 项目中使用这些库时?

最佳答案

为了执行您想要的操作,您需要通过 JNI 从 C++ 代码调用 Java 代码。我不知道任何 C++ 包装器库。您需要从 JNI_OnLoad 获取 Java VM,当您想要调用 Java 方法时,您需要将 VM 附加到您的线程,并为您提供 JNIEnv,您可以使用它来查找所需的类并调用方法在上面。 This link应该有助于细节。

至于是否值得用QT开发Android应用,是的,如果你需要跨平台支持,想把同一个应用部署到Android、Linux、Windows等,如果你只是开发Android应用, 那么根据我的经验,直接使用 Android 会更容易、更快。

关于android - [ native ] : Using Java functions & 3rd-party libraries in Qt for Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052887/

相关文章:

javascript - Mosync Javascript NativeUI 编辑框作为密码字段

android - 我应该使用哪种跨平台应用程序构建工具?

c++ - 编译器错误 __ZTVN13..6..E

android - 为什么 notifyItemChanged 只能在 setAdapter 之后的 Post Runnable 中起作用?

android - facebook 批处理请求返回空对象

android - 如何在饼图中只显示数据值而不是百分比

mysql - QT mysql打不开数据库

c++ - Qt 无法在 XAMPP 上加载 MySql 驱动程序

c++ - Qt - Esc 不应该关闭对话框

android - android中的自定义进度对话框?