- Home /
Finding application version Name from Android
var unityPlayerClass :AndroidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var metricsClass :AndroidJavaClass = new AndroidJavaClass("android.util.DisplayMetrics");
var metricsInstance :AndroidJavaObject = new AndroidJavaObject("android.util.DisplayMetrics");
var activityInstance :AndroidJavaObject = unityPlayerClass.GetStatic.<AndroidJavaObject>("currentActivity");
var windowManagerInstance :AndroidJavaObject = activityInstance.Call.<AndroidJavaObject>("getWindowManager");
var displayInstance :AndroidJavaObject = windowManagerInstance.Call.<AndroidJavaObject>("getDefaultDisplay");
displayInstance.Call("getMetrics", metricsInstance);
var Density : float = metricsInstance.Get.<float>("density");
var DensityDPI : int = metricsInstance.Get.<int>("densityDpi");
var HeightPixels : int = metricsInstance.Get.<int>("heightPixels");
var WidthPixels : int = metricsInstance.Get.<int>("widthPixels");
var ScaledDensity : float = metricsInstance.Get.<float>("scaledDensity");
var XDPI : float = metricsInstance.Get.<float>("xdpi");
var YDPI : float = metricsInstance.Get.<float>("ydpi");
Using above code one can Access DisplayMetrics
class of android to get Width,Height of android device. On the similar lines I am looking to get the application version. But I am stuck with the parameter part of the getPackageInfo
method. In android
pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
version = pInfo.versionName;
this is used for getting Version Name, so how to pass two parameters to the getPackageInfo
.This is what I have done till now.
var packageManagerObject:AndroidJavaObject=new AndroidJavaObject("android.content.pm.PackageManager");
var packInfo:AndroidJavaClass=new AndroidJavaObject("android.content.pm.PackageInfo");
var packageManagerInstance :AndroidJavaObject=packageManagerObject.Call.<AndroidJavaObject>("getPackageManager");
var packageNameInstance:AndroidJavaObject=packageManagerObject.Call.<AndroidJavaObject>("getPackageName");
packageManagerInstance.Call("getPackageName",packageNameInstance,0);
var version=packageManagerInstance.Get.<String>("versionName");
print("Version NAMe:: "+version);
After checking this code on device it gives AndroidJavaException: java.lang.InstantiationException: Can't instantiate Landroid/content/pm/PackageManager; (abstract or interface)
Comment