Getting Android account manager from qt in c++

262 Views Asked by At

Using this code:

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

I am trying to get an instance of the android AccountManager in c++. Unfortantly the output of the line qDebug() << accountManager.isValid(); outputs false.

1

There are 1 best solutions below

2
Evgeny On BEST ANSWER

I think this is because of invalid method signature. You forget L. Also your object name is invalid. Look at some Qt examples. It's always like this

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

So valid string is:

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