AndroidJavaProxy 安卓Java代理

Description 描述

This class can be used to implement any java interface. Any java vm method invocation matching the interface on the proxy object will automatically be passed to the c# implementation.

这个类可以用来实现任何Java接口。任何Java虚拟机调用代理对象上匹配的接口将自动传递到C #实现。




// Opens an android date picker dialog and grabs the result using a callback.

private static DateTime selectedDate = DateTime.Now;

class DateCallback : AndroidJavaProxy


	public DateCallback() : base("$OnDateSetListener") { }

	void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth)


		selectedDate =  DateTime(year, monthOfYear+1, dayOfMonth);



void OnGUI ()


	if (GUI.Button( Rect (15, 15, 450, 75), string.Format("{0:yyyy-MM-dd}", selectedDate)))


		var activity =  AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");

		activity.Call("runOnUiThread",  AndroidJavaRunnable(() =>


			 AndroidJavaObject("", activity,  DateCallback(), selectedDate.Year, selectedDate.Month-1, selectedDate.Day).Call("show");




Variables 变量

javaInterfaceJava interface implemented by the proxy.
由代理实现的javaInterface Java接口。

Constructors 构造函数

Functions 函数

InvokeCalled by the java vm whenever a method is invoked on the java proxy interface. You can override this to run special code on method invokation, or you can leave the implementation as is, and leave the default behavior which is to look for c# methods matching the signature of the java method.