| 207 | |
| 208 | #ifdef QT_ANDROIDEXTRAS_LIB |
| 209 | static QVariant getPackageMetaData(const QString &key, const QVariant &defaultValue) |
| 210 | { |
| 211 | auto pm = QtAndroid::androidContext().callObjectMethod("getPackageManager", "()Landroid/content/pm/PackageManager;"); |
| 212 | auto packageName = QtAndroid::androidContext().callObjectMethod("getPackageName", "()Ljava/lang/String;"); |
| 213 | auto GET_META_DATA = QAndroidJniObject::getStaticField<jint>("android/content/pm/PackageManager", "GET_META_DATA"); |
| 214 | auto appInfo = pm.callObjectMethod("getApplicationInfo", "(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;", packageName.object(), GET_META_DATA); |
| 215 | auto metaData = appInfo.getObjectField("metaData", "Landroid/os/Bundle;"); |
| 216 | if (!metaData.isValid()) { |
| 217 | return defaultValue; |
| 218 | } |
| 219 | |
| 220 | // TODO handle different type cases based on defaultValue.type() |
| 221 | auto value = metaData.callObjectMethod("getString", "(Ljava/lang/String;)Ljava/lang/String;", QAndroidJniObject::fromString(key).object()); |
| 222 | if (value.isValid()) { |
| 223 | return value.toString(); |
| 224 | } |
| 225 | |
| 226 | return defaultValue; |
| 227 | } |
| 228 | #endif |
| 229 | |
| 230 | QVariant ProbeSettings::value(const QString &key, const QVariant &defaultValue) |