unity和android平台使用 AndroidJavaProxy进行非托管交互

本文介绍了Unity如何通过AndroidJavaProxy与Android平台进行非托管交互,详细阐述了Unity端创建AndroidJavaProxy接口并调用Android方法,以及Android端设置监听器的流程,实现了更灵活的跨平台通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unity 端可以使用 AndroidJavaClass, AndroidJavaObject 和 AndroidJavaProxy 这三个类,通过 JNI 对应了 Java 中的类,对象和接口与Android 平台进行通信。
Android 平台则通过调用 UnitySendMessage 方法来向 Unity 传递信息,Unity 端根据传递来的信息执行对应的逻辑。但是void UnitySendMessage(“GameObjectName”, “MethodName”, “Message”)需要在 Unity 端有一个 GameObject 来接收信息,而且没有返回值,只能传递一个字符串参数。这种方式是托管交互。
下面介绍一个非托管交互方法,通过回调的方式实现android 和c#交互:
Android 端 有一个 setListener方法,参数是一个 GmInitListener的回调:

package com.xxx.xxx.a;
public class GmUnity {
   
    private static final String TAG = "GmUnity";
    public static void setListener(Activity activity, final GmInitListener initCallback){
   
        GmResult gmResult = new GmResult(0,"Init Success");
        if (initCallback != null)
            initCallback.onResult(gmResult);
        
    }
}

package com.xxx.xxx.listener;
public interface GmInitListener {
   
    void onResult(GmResult result);
}

package com.xxx.xxx.b;
public class GmResult {
   
    private int code;
    private String message;

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值