从 c++ 中的 qt 获取 Android 客户经理

Getting Android account manager from qt in c++

使用此代码:

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() << accountManager.isValid(); 的输出输出 false。

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

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

所以有效的字符串是:

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