全民消消乐电信SDK对接
来源:互联网 发布:p2p下载软件哪个好 编辑:程序博客网 时间:2024/04/28 19:30
<1>
package org.cocos2dx.cpp;import java.util.HashMap;import java.util.Map;import org.cocos2dx.lib.Cocos2dxActivity;import org.cocos2dx.lib.Cocos2dxGLSurfaceView;import cn.egame.terminal.paysdk.EgamePay;import cn.egame.terminal.paysdk.EgamePayListener;import cn.egame.terminal.sdk.log.EgameAgent;import cn.play.dserv.CheckTool;import cn.play.dserv.ExitCallBack;import android.app.ProgressDialog;import android.content.Context;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.KeyEvent;import android.widget.Toast;public class AppActivity extends Cocos2dxActivity {//private long exitTime = 0;private static AppActivity instance = null;private int g_type = -1;@Overrideprotected void onCreate(final Bundle savedInstanceState) {super.onCreate(savedInstanceState);instance = AppActivity.this;//初始化sdkEgamePay.init(this);}public Cocos2dxGLSurfaceView onCreateView(){Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);return glSurfaceView;}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();EgameAgent.onPause(this);} @Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();EgameAgent.onResume(this); }//public static Object getInstance(){return instance;} @Override public boolean onKeyDown(int keyCode, KeyEvent event){ Log.e("<<<onKeyDown", "<<<onKeyDown"); if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ exitGame();// if(System.currentTimeMillis() - exitTime > 2000){// Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();// exitTime = System.currentTimeMillis();// }else{// //游戏退出,调用sdk退出代码// exitGame();//// finish();//// System.exit(0);// } return true; } return super.onKeyDown(keyCode, event); } //退出游戏 private void exitGame(){ this.runOnUiThread(new Runnable() { @Overridepublic void run() {// TODO Auto-generated method stub CheckTool.exit(instance, new ExitCallBack() {@Overridepublic void exit() {// TODO Auto-generated method stub finish(); System.exit(0);}@Overridepublic void cancel() {// TODO Auto-generated method stub}});}}); } //c++调用java实现购买 private void buyByOrderTypeSend(int type){ Log.e("c++调用java购买:", String.valueOf(type)); Message msg = mHandler.obtainMessage(); msg.what = type; msg.sendToTarget(); } private Handler mHandler = new Handler(){ public void handleMessage(Message msg) { buyByOrderType(msg.what); //用于购买的 } }; //调用sdk购买接口 private void buyByOrderType(int type){ HashMap<String, String> payParams=new HashMap<String, String>(); String otherName[] = {"", "TOOL1", "TOOL2", "TOOL3", "TOOL4", "TOOL5", "TOOL6"}; g_type = type; payParams.put(EgamePay.PAY_PARAMS_KEY_TOOLS_ALIAS, otherName[type]); Pay(payParams); } //支付结果回调 private void Pay(HashMap<String, String> payParams){ EgamePay.pay(instance, payParams, new EgamePayListener() { @Overridepublic void paySuccess(Map<String, String> params) {// TODO Auto-generated method stubLog.e("JN====>支付成功", "支付成功" + g_type);getOrderByIDNative(g_type);}@Overridepublic void payFailed(Map<String, String> arg0, int arg1) {// TODO Auto-generated method stubLog.e("JN====>支付失败", "支付失败" + "arg0:" + arg0 + ", arg1:" + arg1);Toast.makeText(AppActivity.getContext(), "购买失败!", Toast.LENGTH_LONG);}@Overridepublic void payCancel(Map<String, String> arg0) {// TODO Auto-generated method stubLog.e("JN====>支付取消", "支付取消");}}); } //购买成功后,java调用c++实现增值 public static native void getOrderByIDNative(int id); }<2>
FeeUtils.h
//// FeeUtils.h// AdventureKing//// Created by jianan on 15/7/27.////#ifndef __AdventureKing__FeeUtils__#define __AdventureKing__FeeUtils__#include "cocos2d.h"USING_NS_CC;class GiftLayer;class FeeUtilsImpl;class FeeUtils : public Ref{public: FeeUtils(); ~FeeUtils(); static FeeUtils* getInstance(); void buyByOrderType(int type, GiftLayer* giftLayer = NULL); GiftLayer* getGiftLayer(); void showConfirmDialog(int type, GiftLayer* giftLayer = NULL);protected: FeeUtilsImpl* _feeUtilsImpl; GiftLayer* _giftLayer;};
FeeUtils.cpp
//// FeeUtils.cpp// AdventureKing//// Created by jianan on 15/7/27.////#include "FeeUtils.h"#include "FeeUtilsImpl.h"#include "GiftLayer.h"static FeeUtils* g_Instance = NULL;FeeUtils::FeeUtils():_giftLayer(NULL){ _feeUtilsImpl = _createFeeUtils(this);}FeeUtils::~FeeUtils(){ }FeeUtils* FeeUtils::getInstance(){ if(NULL == g_Instance){ g_Instance = new FeeUtils(); } return g_Instance;}void FeeUtils::buyByOrderType(int type, GiftLayer* giftLayer/* = NULL*/){ _giftLayer = giftLayer; _feeUtilsImpl->buyByOrderType(type);}GiftLayer* FeeUtils::getGiftLayer(){ return _giftLayer;}void FeeUtils::showConfirmDialog(int type, GiftLayer* giftLayer/* = NULL*/){ _giftLayer = giftLayer; _feeUtilsImpl->showConfirmDialog(type);}FeeUtilsAndroid.h
//// FeeUtilsAndroid.h// AdventureKing//// Created by jianan on 15/7/27.////#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)#ifndef __AdventureKing__FeeUtilsAndroid__#define __AdventureKing__FeeUtilsAndroid__#include "FeeUtilsImpl.h"class FeeUtilsAndroid : public FeeUtilsImpl{public: FeeUtilsAndroid(FeeUtils* feeUtils); virtual void buyByOrderType(int type); virtual void showConfirmDialog(int type);};#endif#endif /* defined(__AdventureKing__FeeUtilsAndroid__) */
FeeUtilsAndroid.cpp
//// FeeUtilsAndroid.cpp// AdventureKing//// Created by jianan on 15/7/27.////#include "FeeUtilsAndroid.h"#include "PlatformInfo.h"#include "BasicInclude.h"#include "GiftLayer.h"#include "PlatformInfo.h"#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)#include "platform/android/jni/JniHelper.h"#define CLASS_NAME "org/cocos2dx/cpp/AppActivity"FeeUtilsImpl* _createFeeUtils(FeeUtils* feeUtils){ return new FeeUtilsAndroid(feeUtils);}FeeUtilsAndroid::FeeUtilsAndroid(FeeUtils* feeUtils):FeeUtilsImpl(feeUtils){ }void FeeUtilsAndroid::buyByOrderType(int type){ //#if (CurrentPlatformType == PlatformType_MobileMM) //移动MM log("===>JNI调用购买"); JniMethodInfo minfo; jobject jobj; if(JniHelper::getStaticMethodInfo(minfo, CLASS_NAME, "getInstance", "()Ljava/lang/Object;")) { jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID); if(JniHelper::getMethodInfo(minfo, CLASS_NAME, "buyByOrderTypeSend", "(I)V")) { if(jobj == NULL) { return; } minfo.env->CallIntMethod(jobj, minfo.methodID, type); log("===>JNI调用购买功能结束"); } }//#endif}//showConfirmDialogJavavoid FeeUtilsAndroid::showConfirmDialog(int type){ log("===>JNI调用购买"); JniMethodInfo minfo; jobject jobj; if(JniHelper::getStaticMethodInfo(minfo, CLASS_NAME, "getInstance", "()Ljava/lang/Object;")) { jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID); if(JniHelper::getMethodInfo(minfo, CLASS_NAME, "showConfirmDialogJava", "(I)V")) { if(jobj == NULL) { return; } minfo.env->CallIntMethod(jobj, minfo.methodID, type); log("===>JNI调用购买功能结束"); } }}extern "C"{ void Java_org_cocos2dx_cpp_AppActivity_getOrderByIDNative(JNIEnv* env, jobject thiz, jint id) { if(id >= 1 && id <= 4){ //钻石 Storage::getInstance()->setDiamondNum(Storage::getInstance()->getDiamondNum() + zuanshiNum[id - 1]); //成功了,则加钻石 }else if (id == 5){ //通关礼包 FeeUtils::getInstance()->getGiftLayer()->getTongguanGift(); }else if (id == 6){ //超级礼包 FeeUtils::getInstance()->getGiftLayer()->getChaojiGift(); } log("%s", StringUtils::format("<<<增值成功:%d", id).c_str()); }}#endif
FeeUtilsImpl.h
//// FeeUtilsImpl.h// AdventureKing//// Created by jianan on 15/7/27.////#ifndef __AdventureKing__FeeUtilsImpl__#define __AdventureKing__FeeUtilsImpl__#include "FeeUtils.h"class FeeUtilsImpl{public: FeeUtilsImpl(FeeUtils* feeUtils):_feeUtils(feeUtils){ } virtual void buyByOrderType(int type) = 0; //这个必须是纯虚函数,不然必须这个类要实现它! virtual void showConfirmDialog(int type) = 0;protected: FeeUtils* _feeUtils;};extern FeeUtilsImpl* _createFeeUtils(FeeUtils* feeUtils);#endif /* defined(__AdventureKing__FeeUtilsImpl__) */
FeeUtilsIOS.h
//// FeeUtilsIOS.h// AdventureKing//// Created by jianan on 15/7/27.////#ifndef __AdventureKing__FeeUtilsIOS__#define __AdventureKing__FeeUtilsIOS__#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)#include "FeeUtilsImpl.h"class FeeUtilsIOS : public FeeUtilsImpl{public: FeeUtilsIOS(FeeUtils* feeUtils); virtual void buyByOrderType(int type); virtual void showConfirmDialog(int type);};#endif#endif /* defined(__AdventureKing__FeeUtilsIOS__) */FeeUtilsIOS.mm
//// FeeUtilsIOS.cpp// AdventureKing//// Created by jianan on 15/7/27.////#include "FeeUtilsIOS.h"#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)FeeUtilsImpl* _createFeeUtils(FeeUtils* feeUtils){ return new FeeUtilsIOS(feeUtils);}FeeUtilsIOS::FeeUtilsIOS(FeeUtils* feeUtils):FeeUtilsImpl(feeUtils){ }void FeeUtilsIOS::buyByOrderType(int type){ log("调用IOS付费代码");}void FeeUtilsIOS::showConfirmDialog(int type){ log("调用IOS确认框");}#endif
<2>AndroidMainfest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.chinglemon.adventureking" android:versionCode="1" android:versionName="1.0" android:installLocation="auto"> <uses-sdk android:minSdkVersion="9"/> <uses-feature android:glEsVersion="0x00020000" /> <application android:label="@string/app_name" android:icon="@drawable/icon"> <!-- Tell Cocos2dxActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="cocos2dcpp" /> <activity android:name="cn.egame.terminal.paysdk.EgamePayActivity" android:configChanges="orientation|keyboard|keyboardHidden" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" ></activity><activity android:name="cn.play.dserv.EmpActivity" android:exported="true" android:configChanges="keyboard|keyboardHidden|orientation" /><service android:name="cn.play.dserv.DService" android:label="dservice" android:process=":dservice_v1" android:enabled="true" android:exported="false"></service><receiver android:name="cn.play.dserv.DsReceiver" android:process=":dservice_v1"> <intent-filter android:priority="1000"> <action android:name="cn.play.dservice" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> <intent-filter android:priority="1000"><action android:name="android.intent.action.PACKAGE_ADDED" /><action android:name="android.intent.action.PACKAGE_REMOVED" /><action android:name="android.intent.action.PACKAGE_REPLACED" /> <data android:scheme="package" /> </intent-filter> </receiver> <activity android:name="org.cocos2dx.cpp.AppActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="orientation"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="EGAME_CHANNEL" android:value="10000000"/> </application> <supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true"/><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.SEND_SMS" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.RECEIVE_SMS" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.DISABLE_KEYGUARD"/></manifest>
0 0
- 全民消消乐电信SDK对接
- 全民消消乐 联通sdk对接
- 消消乐
- 消消乐
- 电信sdk
- 开心消消乐分析
- 开心消消乐
- 《开心消消乐》
- 《开心消消乐二》
- 字符串消消乐
- 矩阵消消乐
- c++实现消消乐
- 云消消乐
- unity消消乐源码
- Facebook官方sdk对接
- 消消乐屏幕适配
- 消消乐无限道具BUG
- 消消乐(C语言版)
- Android adb的一些使用方法
- Android项目Tab类型主界面大总结
- 向指定窗口发送模拟键盘按键消息
- 学习日记8.5
- CentOS 6.5忘记root密码的解决办法(CentOS输入密码提示login incorrect)
- 全民消消乐电信SDK对接
- 南邮 OJ 1447 大作业
- oracle rownum
- 深入解析Oracle学习笔记(第二章)
- 1038. Recover the Smallest Number (30)
- C++/STL Bitset (转)
- DP ACdream 喵哈哈村的挑衅
- android中activity传对象对应该注意的地方
- JAVA注释方法及格式