1.文件引入
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) #include <jni.h> #include "platform/android/jni/JniHelper.h" #include <android/log.h> #endif
2.按钮部分代码
void HelloWorld::menuCloseCallback(CCObject* pSender) { bool isHave; const char* msgRet; JniMethodInfo minfo; const char* fileName = "testWei"; isHave = JniHelper::getStaticMethodInfo(minfo, "org/test/MyStatic", "sendWeibo", "(Ljava/lang/String;)Ljava/lang/String;"); if (isHave) { jstring jTitle = minfo.env->NewStringUTF(fileName); jobject obj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID, jTitle); jstring jRet = (jstring) obj; msgRet = (minfo.env)->GetStringUTFChars(jRet, NULL); } }
3.java 有static类方法
public class MyStatic { private static Handler mHandler; public static final int SHOW_DIALOG = 0x0001; public static void init(Handler handler) { MyStatic.mHandler = handler; } public static String sendWeibo(String pCon) { System.out.println("sendWeibo : " + pCon); Message msg = mHandler.obtainMessage(); // 发送给那个类 msg.what = MyStatic.SHOW_DIALOG; msg.sendToTarget(); return ""; } }
4.java接受3发过来的消息代码
onCreate..里
MyStatic.init(mHandler);
public Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MyStatic.SHOW_DIALOG: System.out.println("SHOW_DIALOG SHOW_DIALOG"); break; } } };