1
Я хочу получить список установленных приложений на Android, вызвав методы Android из кода на C++. Первый найденный метод (getPackageManager()
), но метод getInstalledApplications()
каждый раз равен нулю. Что здесь не так?Не удалось разрешить JNIфункцию: 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);
}
Спасибо. Ты прав. –