public class CompletionCallback : AndroidJavaProxy { public CompletionCallback() :base("android.media.MediaPlayer$OnCompletionListener") { } void onCompletion(AndroidJavaObject mp) { CommonUtil.showToast("finish"); } }
using UnityEngine; using System.Collections; public class SelectedDate : MonoBehaviour { public static Date date = System.DateTime.Now; } public class DateCallback : AndroidJavaProxy { public DateCallback() :base("android.app.DatePickerDialog$OnDateSetListener") { } void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth) { SelectedDate.date = new Date(year, monthOfYear + 1, dayOfMonth); } } public class ExampleClass : MonoBehaviour { void OnGUI() { if (GUI.Button(new Rect(10, 10, 450, 100), String.Format("{0:yyyy-MM-dd}", SelectedDate.date))) { AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"); activity.Call( "runOnUiThread", AndroidJavaRunnable( new AndroidJavaObject( "android.app.DatePickerDialog", activity, new DateCallback(), SelectedDate.date.Year, SelectedDate.date.Month - 1, SelectedDate.date.Day ).Call("show"); ) ); } } }
ExActivityListener.java public interface ExActivityListener { public void onRestart(); public void onStart(); public void onResume(); public void onPause(); public void onStop(); public void onActivityResult(int requestCode, int resultCode, Intent data); }
ExActivity.java public class ExActivity extends com.unity3d.player.UnityPlayerActivity { private ExActivityListener listener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public void setListener(ExActivityListener listener) { this.listener = listener; } @Override puglic void onRestart() { super.onRestart(); if(listener != null) listener.onRestart(); } @Override puglic void onStart() { super.onStart(); if(listener != null) listener.onStart(); } @Override puglic void onResume() { super.onResume(); if(listener != null) listener.onResume(); } @Override puglic void onPause() { super.onPause(); if(listener != null) listener.onPause(); } @Override puglic void onStop() { if(listener != null) listener.onStop(); super.onStop(); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if(listener != null) listener.onActivityResult(requestCode, resultCode, data); } }
public class Hoge : MonoBehavior { public class ActivityListener : AndroidJavaProxy { public ActivityListener() : base("com.hoge.ExActivityListener") { } puglic void onRestart() { } puglic void onStart() { } puglic void onResume() { } puglic void onPause() { } puglic void onStop() { } public void onActivityResult(int requestCode, int resultCode, AndroidJavaObject data) { } } void Awake() { AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"); activity.Call("setListener", new ActivityListener()); } }