2016년 2월 19일 금요일

AndroidJavaObject (only C#)

Only C#안드로이드 plugin 작업없이 순전히 AndroidJavaObject 클래스를 활용하여C# 으로만 실행하여 처리할 수 있다.

public void ClickBtn()
{
bool fail = false;
#if UNITY_ANDROID && UNITY_EDITOR
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject intent = jo.Call<AndroidJavaObject>("getIntent"); ;
try
{
intent.Call<AndroidJavaObject>( "setClassName",
"com.yourcompany.packagename",
"com.yourcompany.packagename.AppActivity" );
intent.Call<AndroidJavaObject>( "putExtra", "nickname", "noname" );
intent.Call<AndroidJavaObject>( "putExtra", "uuid", 12345678 );
intent.Call<AndroidJavaObject>( "putExtra", "type", 1 );
}
catch( System.Exception e )
{
fail = true;
}
if( fail )
{
Debug.Log( "Could not find App" );
}
else
{
jo.Call("startActivity", intent);
}
#endif
}
view raw gistfile2.cs hosted with ❤ by GitHub
일반적인 Native 코드로 작성하여 유니티에서 JNI 를 통해 실행하는 방법이다.

Intent intent = new Intent();
intent.setClassName("com.yourcompany.packagename","com.yourcompany.packagename.AppActivity");
intent.putExtra("nickname", "noname");
intent.putExtra("uuid",12345678 );
intent.putExtra("type",1 );
startActivity(intent);
view raw gistfile3.java hosted with ❤ by GitHub

댓글 없음:

댓글 쓰기