c#

Cocos2dx Android 간에 함수 호출

클레인 2022. 2. 18.
반응형

Cocos2dx Android 간 기기컨트롤 어플리케이션 프로젝트 진행간에 메모.

 

C# 코드에서 결과 값을 Android 로 넘겨주어 Dialog를 띄워주는 경우

 

1. C# 에서 Android 함수 호출 및 String 인자 반환

- C# 내에서 Android 함수 인자로 String 을 넣어서 호출한다.

* Android 코드

public static void jni_printsetpacketdata(final String msg){
        final String pkmsg = "패킷전송: "+msg;
        Log.d("printMyLog","send message: "+msg);

        Handler handler = new Handler(Looper.getMainLooper());
        handler.postDelayed(new Runnable() {
            @Override
            public void run()
            {
                // 여기서 팝업을 띄운다.
                showCustomDialog(pkmsg);
            }
        }, 0);

    }

 

* c# 호출부분

void AppDelegate::sendTestButtonPacket(std::string msg) {

	#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
		if (g_enableLog) {
			log("gdpark - AppDelegate::ClickTestButton %s", msg.c_str());
		}

		const char* returnstr = msg.c_str();

		JniMethodInfo t;
		
		if (JniHelper::getStaticMethodInfo(t, "org/cocos2dx/cpp/AppActivity", "jni_printsetpacketdata", "(Ljava/lang/String;)V"))
		{

			jstring param1 = t.env->NewStringUTF(returnstr); // 파라메터로 들어갈 문자열을 써주고
			t.env->CallStaticVoidMethod(t.classID, t.methodID, param1); // 인자를 써준다.
			t.env->DeleteLocalRef(t.classID);
			t.env->DeleteLocalRef(param1); // 해지를 한다.
		}

	#endif

}
반응형

댓글