반응형
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
}
반응형
'c#' 카테고리의 다른 글
[Visual Studio 빌드 오류]"Lc.exe 이(가) 종료되었습니다" 오류 해결 (0) | 2022.02.27 |
---|---|
c# Ui Thread 처리하기 (0) | 2019.11.13 |
댓글