Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


JNINativeMethod

Defines a single method to register with a Java class using AndroidJNI.RegisterNatives.
Read time 1 minuteLast updated 5 days ago

Definition

  • Type: Struct
  • Namespace: UnityEngine
  • Assembly: UnityEngine.AndroidJNIModule
public struct JNINativeMethod

Remarks

This struct stores information about the Java method, such as its name, JNI signature, and the pointer to its corresponding native function. Registering this information using the AndroidJNI.RegisterNatives allows you to integrate Android-specific capabilities in your Unity application.
Note: Use of this struct requires knowledge of Android Java Native Interface (JNI) concepts. For more information, refer to Java Native Interface Specification (Oracle)

Examples

// Delegate definition delegate void JavaToCs(IntPtr jniEnv, IntPtr klass, int x); // Method definition[MonoPInvokeCallback(typeof(JavaToCs))]static void CsMethod(IntPtr jniEnv, IntPtr klass, int x){ Debug.Log("From Java: " + x);} // Array to be passed to AndroidJNI.RegisterNativevar methods = new JNINativeMethod[]{ new JNINativeMethod { name = "csMethod", signature = "(I)V", fnPtr = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(new JavaToCs(CsMethod)), }}; // Register method with the specified Java classAndroidJNI.RegisterNatives(clazz, methods);

Fields

Value

Description

fnPtrThe pointer to the native function that is called from the Java code.
nameThe name of the Java method implemented by the corresponding native function.
signatureThe JNI method signature string that represents the parameters and return type of the Java method.