通过C#直接调用Android实现

void Start()
{
        AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = unityPlayer.GetStatic("currentActivity");
        AndroidJavaClass toast = new AndroidJavaClass("android.widget.Toast");
        AndroidJavaObject context = currentActivity.Call("getApplicationContext");
        currentActivity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
        {
            toast.CallStatic("makeText", context, "Send Message", toast.GetStatic("LENGTH_LONG")).Call("show");
        }));
}

2. 使用 AndroidJavaProxy


public DateTime date = DateTime.Now;

// 模拟接口
class DateCallBack : AndroidJavaProxy
{
    public DateCallBack() : base("android.app.DatePickerDialog$OnDateSetListener"){}
    void OnDateSet(AndroidJavaObject view, int year, int month, int dayOfMonth)
    {
        // todo 
    }
}


void Start()
{
    AndroidJavaObject currentActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic("currentActivity");
    currentActivity.Call("runOnUiThread", new AndroidJavaRunnable(()=>{
        new AndoidJavaObject("android.app.DatePickerDialog", currentActivity, new DateCallBack(), date.Year, date.Month-1, date.Day);
    }));
}

你可能感兴趣的:(Unity,android,android,java)