how can I get the Version of my current running App by NDK?
I can get the name and the package, but I need the Version.
Try this code,
int getVersionCode(JNIEnv *env, jobject context) {
jstring packageName;
jobject packageManagerObj;
jobject packageInfoObj;
jclass contextClass = env->GetObjectClass( context);
jmethodID getPackageNameMid = env->GetMethodID( contextClass, "getPackageName", "()Ljava/lang/String;");
jmethodID getPackageManager = env->GetMethodID( contextClass, "getPackageManager", "()Landroid/content/pm/PackageManager;");
jclass packageManagerClass = env->FindClass("android/content/pm/PackageManager");
jmethodID getPackageInfo = env->GetMethodID( packageManagerClass, "getPackageInfo", "(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;");
jclass packageInfoClass = env->FindClass("android/content/pm/PackageInfo");
jfieldID versionCodeFid = env->GetFieldID( packageInfoClass, "versionCode", "I");
packageName = (jstring)env->CallObjectMethod( context, getPackageNameMid);
packageManagerObj = env->CallObjectMethod(context, getPackageManager);
packageInfoObj = env->CallObjectMethod( packageManagerObj,getPackageInfo, packageName, 0x0);
int versionCode = env->GetIntField( packageInfoObj, versionCodeFid);
return versionCode;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With