1
Ich möchte die Liste der installierten Anwendungen in Android abrufen, indem ich Android-Methoden aus C++ - Code aufruft. Die erste Methode gefunden (getPackageManager()
), aber die getInstalledApplications()
Methode jedes Mal ist Null. Was ist hier falsch?JNIfunction konnte nicht aufgelöst werden: Android ndk
JNIEXPORT jobject JNICALL Java_com_example_davidt_ndkexample_TestNdk_getListOfInstalledApps
(JNIEnv* env, jobject obj, jobject activity){
jclass contextWrapperClass = env->FindClass("android/content/ContextWrapper");
jmethodID getPackageManagerId = env->GetMethodID(contextWrapperClass,"getPackageManager","()Landroid/content/pm/PackageManager;");
if (getPackageManagerId == 0) {
fprintf(stderr, "packageManager() not found");
}
jobject pm = env->CallObjectMethod(activity, getPackageManagerId);
jclass PackageManagerClass = env->GetObjectClass(pm);
jmethodID getInstalledApplicationsId = env->GetMethodID(PackageManagerClass,"getInstalledApplications","(I)[Landroid/content/pm/ApplicationInfo;");
if (getInstalledApplicationsId == 0) {
fprintf(stderr, "getInstalledApplications() not found");
}
return env->CallObjectMethod(pm, getInstalledApplicationsId);
}
Danke sein. Du hast recht. –