Как передать класс JNI C # в Java или справиться с этой ситуацией?
Я пытаюсь вызвать метод Java из C #, он называется так из Java:
EgamePay.pay(thisActivity, payAlias, new EgamePayListener() {
@Override
public void paySuccess(String alias) {
}
@Override
public void payFailed(String alias, int errorInt) {
}
@Override
public void payCancel(String alias) {
}
});
Первые два параметра в порядке, но как мне передать EgamePayListner в C #? Простое создание класса C # с теми же функциями не сработает ...
Вот что я сейчас делаю:
using (AndroidJavaClass jc = new AndroidJavaClass("cn.egame.terminal.smspay.EgamePay"))
{
System.IntPtr cls_Activity = AndroidJNI.FindClass("com/unity3d/player/UnityPlayer");
System.IntPtr fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;");
object[] p = { fid_Activity, "payAlias", new EgamePayListener() };
jc.CallStatic("pay", p);
}
..
class EgamePayListener
{
public void paySucess(string alias)
{
}
public void payFailed(string alians, int errorInt)
{
}
public void payCancel(string alias)
{
}
}
Очевидно, что это неправильно, как я могу справиться с этой ситуацией, чтобы я мог получать уведомления обратно в C # land, когда эти функции запускаются?