チラ裏Unity

主にUnityについての備忘録ですが誰か様の為になれば

UnityからAndroidのJavaを呼び出す

ビルドしたAndroidアプリのバージョンをUnityのスクリプトから取得するサンプル

 

Androidプロジェクトの準備

Androidプロジェクトについては以下を参照

http://hwks.hatenadiary.jp/entry/2014/06/10/010904

パッケージ名は適宜置き換えてください

  1.  Androidプロジェクト/src/com/example/sampleにUtility.javaを作成
  2. 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の準備

  1. バージョンを取得したいどこかのスクリプトで以下を記述
    #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エディター上では取得できません