版本:Unity 6(6000.0)
语言中文
  • C#

AndroidJavaProxy

Unity3D 中的类

/

在中实现:UnityEngine.AndroidJNIModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有的提交,但我们会阅读用户提出的每一条建议更改,并在适当的地方进行更新。

关闭

提交失败

由于某种原因,无法提交您的建议更改。请在几分钟后<a>重试</a>。并且感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

说明

该类可以用来实现任何 java 接口。代理对象上与接口匹配的任何 java vm 方法调用都会自动传递到 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

公开方法

equal等同于 java.lang.Object equals() 方法。
hashCode等同于 java.lang.Object hashCode() 方法。
Invoke每当在 java 代理接口上调用方法时,都会由 java vm 调用。你可以在上面重写以在方法调用时运行特殊代码,或者保持实现不变,并使用默认行为(查找与 java 方法签名匹配的 c# 方法)。
toString等同于 java.lang.Object toString() 方法。