너무나 정신없어서 블로그 관리도 못하고 있네요.
그럼에도 블로그 방문해주신 대부분의 Bot 여러분 및 소수의 열성 독자 여러분께 감사드립니다. (it's joke~!)
Unity3D 에서 안드로이드 개발할때 간혹 다른 앱을 실행하고자 할 때가 있습니다.
물론 이클립스 열어서 플러그인을 만들거나 혹은 쿵짝 쿵짝하는 경우가 있지만, 여기에서는 기본 C#코드로만 하는 방법을 설명할께요.

본 예제는 Android 기본 갤러리를 여는 예제입니다.
 
void LaunchGallery () { 
   AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
   AndroidJavaObject jo = jc.GetStatic("currentActivity"); 
   AndroidJavaObject pm = jo.Call("getPackageManager"); 
   AndroidJavaObject intent = pm.Call("getLaunchIntentForPackage", "com.android.gallery3d");
   jo.Call("startActivity", intent); 
}
 


처음부터 보자면, 예전 포스팅 (http://www.wolfpack.pe.kr/860)에서 밝혔던, Static 은 AndroidJavaClass, instance는 AndroidJavaObject 원칙에 따라 Class를 먼저 호출했습니다.
그리고나서, 현재 Activity를 호출했구요.
다음줄 부터는 Android API에 따라서,
getPackageManager (상세 여기참조) 와 getLaunchIntentForPackage (상세 여기참조)을 호출하면서 getLaunchIntentForPackage에 인자값으로 패키지명인 "com.android.gallery3d"을 넣어 줬습니다.
이제 준비가 다 끝나고 마지막으로 준비된 과정을 한꺼번에 부어서...
currentActivity Object에서 startActivity로 실행했습니다.
Intent는 다른 앱을 실행하고나서의 통신을 설정하는 부분인데 Intent 정의를 따로 하지 않았으니 통신하지 않겠다는 의미입니다. =)

그럼 수고하세요.
2014/08/19 21:44 2014/08/19 21:44

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다