1:调用类的静态方法
安卓端
public class CCC {
private static Activity sActivity;
private static boolean isInit=false;
private static String sUserName;
public static void Init(Object activity,String userName,String appKey,String appSecret){
if(!isInit)
{
sActivity=(Activity)activity;
sUserName=userName;
isInit=true;
}
}
public static void Open(){
if (!isInit){
return;
}
}
C#端:
var c= new AndroidJavaClass("xxx.xxx.xxx.CCC");
using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
object jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
c.CallStatic("Init",jo,userName,appKey,appSecret);
c.CallStatic("Open");
}
这种调用的好处是,不用抢占Unity入口Activity,如果需要上下文Context,可以把主入口作为参数传进去。
2,调用MainActivity.java中的普通方法
假设MainActivity.java继承自UnityPlayerActivity
安卓端:
public class MainActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public boolean checkPermissionFinished(){
return false;
}
}
C#端
using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
bool permissionResult = jo.Call<bool>("checkPermissionFinished");
}