在 C++ 中从 qt 获取 Android 帐户管理器

Posted

技术标签:

【中文标题】在 C++ 中从 qt 获取 Android 帐户管理器【英文标题】:Getting Android account manager from qt in c++ 【发布时间】:2016-01-11 00:17:06 【问题描述】:

使用此代码:

QandroidJniObject activity = QtAndroid::androidActivity();
QAndroidJniObject accountManager = QAndroidJniObject::callStaticObjectMethod("android.accounts.AccountManager","get","(Landroid/content/Context;)android.accounts.AccountManager;",activity.object());
qDebug() << accountManager.isValid();

我正在尝试在 C++ 中获取 android AccountManager 的实例。不幸的是,qDebug() &lt;&lt; accountManager.isValid(); 行的输出为 false。

【问题讨论】:

【参考方案1】:

我认为这是因为方法签名无效。你忘了L。您的对象名称也无效。查看一些 Qt 示例。总是这样

jint max = QAndroidJniObject::callStaticMethod("java/lang/Math", "最大", "(II)I", a, b);

所以有效的字符串是:

QAndroidJniObject accountManager = QAndroidJniObject::callStaticObjectMethod("android/accounts/AccountManager","get","(Landroid/content/Context;)Landroid/accounts/AccountManager;",activity.object());

【讨论】:

哦,很好。但不幸的是,似乎还有其他问题,因为更正后我仍然得到相同的行为:-(。 是的!另一个错误:更改“。”在返回的类中为“/”。比你的答案更完整。

以上是关于在 C++ 中从 qt 获取 Android 帐户管理器的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中从服务器发送一些行到 QT(C++) 客户端

C++图形用户界面开发框架Qt 6.1入门级教程 - 入门指南

如何在 QT[C++] 中从 linux 机器连接 SQL Server 2008 R2?

在 Qt 中从用户那里获取几个值?

在 iOS 中从 Twitter 获取用户个人资料详细信息(尤其是电子邮件地址)

在 Android JNI/NDK 代码中从 C++ 函数调用 C 函数