从 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());
使用此代码:
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());