public void Init()
{
PersistentDataPath = Application.persistentDataPath;
UnityVersion = Application.unityVersion;
if (InternalSDKUtils.IsAndroid)
{
//device related information
PlatformVersion = AndroidInterop.GetStaticJavaField<string>("android.os.Build$VERSION", "RELEASE");
Platform = ANDROID_OS;
Model = AndroidInterop.GetStaticJavaField<string>("android.os.Build", "MODEL");
Make = AndroidInterop.GetStaticJavaField<string>("android.os.Build", "MANUFACTURER");
var locale = AndroidInterop.GetJavaObjectStatically("java.util.Locale", "getDefault");
Locale = AndroidInterop.CallMethod<string>(locale, @"toString");
//application related information
var context = AndroidInterop.GetAndroidContext();
PackageName = AndroidInterop.CallMethod<string>(context, "getPackageName");
var packageManager = AndroidInterop.CallMethod(context, "getPackageManager");
var packageInfo = AndroidInterop.CallMethod(packageManager, "getPackageInfo", PackageName, 0);
var applicationInfo = AndroidInterop.CallMethod(packageManager, "getApplicationInfo", PackageName, 0);
VersionCode = System.Convert.ToString(AndroidInterop.GetJavaField<int>(packageInfo, "versionCode"));
VersionName = AndroidInterop.GetJavaField<string>(packageInfo, "versionName");
Title = AndroidInterop.CallMethod<string>(packageManager, "getApplicationLabel", applicationInfo);
}
else if (InternalSDKUtils.IsiOS)
{
//platform related information
if (!string.IsNullOrEmpty(NSLocale.AutoUpdatingCurrentLocale.Identifier))
{
Locale = NSLocale.AutoUpdatingCurrentLocale.Identifier;
}
else
{
Locale = NSLocale.AutoUpdatingCurrentLocale.LocaleIdentifier;
}
using (var device = UIDevice.CurrentDevice)
{
Platform = device.SystemName;
PlatformVersion = device.SystemVersion;
Model = device.Model;
}
Make = "apple";
//Application related information
using (var bundle = NSBundle.MainBundle)
{
var infoPtr = ObjC.MessageSendIntPtr(bundle.Handle, Selector.GetHandle("infoDictionary"));
using (var info = ThirdParty.iOS4Unity.Runtime.GetNSObject<NSDictionary>(infoPtr))
{
Title = info.ObjectForKey("CFBundleDisplayName").ToString();
VersionCode = info.ObjectForKey("CFBundleVersion").ToString();
VersionName = info.ObjectForKey("CFBundleShortVersionString").ToString();
PackageName = info.ObjectForKey("CFBundleIdentifier").ToString();
}
}
}
}