参考珊瑚SDK,jni的调用方式-创新互联

extern "C"
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    void Java_com_friendou_Interface_coralsdk_SendtoGame(JNIEnv *env, jobject thiz, jstring info)
    {
        const char *temp = env->GetStringUTFChars(info, NULL);

        if (gSDKCallback == NULL || p != NULL)
        {
            __android_log_print(ANDROID_LOG_INFO,"SDKCallbackError","The gSDKCallback pointer is null !");
            return;
        }

        FMJSONDictionary *Recivejson = new FMJSONDictionary();

        Recivejson->initWithDescription(temp);//

        __android_log_print(ANDROID_LOG_INFO,"SDKCallback","SDKCallback message = %s", temp);

        const char *ReciveAction = Recivejson->getItemStringFMValue("action");

        if (strcmp(ReciveAction, "1001") == 0)
        {
            char const *userlist = Recivejson->getItemStringFMValue("userlist");
            __android_log_print(ANDROID_LOG_INFO,"Test","userlist = %s", userlist);

            GameUserSelectedNotification(userlist);//userlist tReturn.c_str()            
        }
        else if (strcmp(ReciveAction, "1002") == 0)
        {
//            char const *userlist = Recivejson->getItemStringFMValue("userlist");
//            GameReplayNotification(userlist);
        }
        else if (strcmp(ReciveAction, "1003") == 0)
        {    
            __android_log_print(ANDROID_LOG_INFO,"Test","LogoutNotify1003");
            LogoutNotify();
        }
        else if (strcmp(ReciveAction, "1004") == 0)
        {
            bool isOn = Recivejson->getItemBoolFMvalue("isOn",false);
            MusicTurnOffAndOn(isOn);
        }
        else if (strcmp(ReciveAction, "1005") == 0)
        {
            bool isOn = Recivejson->getItemBoolFMvalue("isOn",false);
            SoundTurnOffAndOn(isOn);
        }
        else if (strcmp(ReciveAction, "1006") == 0)
        {
            int aisLogin = Recivejson->getItemIntFMValue("isLogin",0);
            LoginResult(aisLogin);
            __android_log_print(ANDROID_LOG_INFO,"Test","LoginResult 1006 = %d", aisLogin);
        }
        else if (strcmp(ReciveAction, "1007") == 0)
        {
            __android_log_print(ANDROID_LOG_INFO,"Test","GameBackNotification   1007");
            GameBackNotification();
        }
        else if (strcmp(ReciveAction, "1008") == 0)
        {
//            ApplicationWillResignActive();
        }
        else
        {
            __android_log_print(ANDROID_LOG_INFO,"SDKCallbackError","Have no this callback !");
            return;
        }
    }
#endif
}

珊瑚SDK官方调用例子,可以下载来看看哦,对于Android开发接入jni还是有很大的帮助

创新互联建站是一家专注网站建设、网络营销策划、小程序开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十年以来,已经为上千余家水处理设备各业的企业公司提供互联网服务。现在,服务的上千余家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:参考珊瑚SDK,jni的调用方式-创新互联
文章位置:http://ybzwz.com/article/dgeoop.html