AndroidJavaProxy
класс в UnityEngine
Выполнено в:UnityEngine.AndroidJNIModule
Описание
Этот класс позволяет реализовать любой интерфейс Java. Любой вызов метода виртуальной машины Java, соответствующий интерфейсу прокси-объекта, автоматически передаётся реализации на C#.
Примечание: это API может быть использован из пользовательской темы, но требует, чтобы эта тема была прикреплена к JVM Первое, см. AndroidJNI.AttachCurrentThread.
// Opens an android date picker dialog and grabs the result using a callback. using UnityEngine; using System;
class ExampleClass : MonoBehaviour { private static DateTime selectedDate = DateTime.Now;
class DateCallback : AndroidJavaProxy { public DateCallback() : base("android.app.DatePickerDialog$OnDateSetListener") {} void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth) { selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth); // If you have no longer any uses for the object, it must be disposed to prevent a leak view.Dispose(); } }
void OnGUI() { if (GUI.Button(new Rect(15, 15, 450, 75), string.Format("{0:yyyy-MM-dd}", selectedDate))) { var activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"); activity.Call("runOnUiThread", new AndroidJavaRunnable(() => { new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), selectedDate.Year, selectedDate.Month - 1, selectedDate.Day).Call("show"); })); } } }
Свойства
| Свойство | Описание |
|---|---|
| javaInterface | Интерфейс Java, реализуемый прокси. |
Конструкторы
| Конструктор | Описание |
|---|---|
| AndroidJavaProxy |
Открытые методы
| Метод | Описание |
|---|---|
| equals | Эквивалент метода java.lang.Object equals(). |
| hashCode | Эквивалент метода java.lang.Object hashCode(). |
| Invoke | Вызывается виртуальной машиной Java при каждом вызове метода у прокси-интерфейса Java. Вы можете переопределить его, чтобы выполнять особый код при вызове метода, либо оставить реализацию как есть и сохранить поведение по умолчанию — поиск методов C#, соответствующих сигнатуре метода Java. |
| toString | Эквивалент метода java.lang.Object toString(). |