UnityからAndroidのJavaを呼び出す
ビルドしたAndroidアプリのバージョンをUnityのスクリプトから取得するサンプル
Androidプロジェクトの準備
Androidプロジェクトについては以下を参照
http://hwks.hatenadiary.jp/entry/2014/06/10/010904
パッケージ名は適宜置き換えてください
- Androidプロジェクト/src/com/example/sampleにUtility.javaを作成
- Utility.java を以下のように修正
package com.example.sample;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
public class Utility {
public static String getVersionCode(Activity activity) {
try {
return activity.getPackageManager().getPackageInfo(
activity.getPackageName(),
PackageManager.GET_META_DATA).versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
return "";
}
}
}
Unityの準備
- バージョンを取得したいどこかのスクリプトで以下を記述
#if UNITY_ANDROID
AndroidJavaClass player = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = player.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject plugin = new AndroidJavaObject("com.example.sample.Utility");
return plugin.CallStatic<string>("getVersionCode", activity);
#endif
補足
- Unityエディター上では取得できません