cocos2d-x Android版游戏之中国移动SDK嵌入
. 拷贝API 将SDK\runtime\CMBilling20007.jar拷贝至游戏工程的runtime目录下(或其他目录) ,但切记不能放在libs目录下编译,否则编译报错(如:bad range。)(完成) 将SDK\libs\armeabi\libmegjb.so拷贝至游戏相同的目录。 (完成,注:每次编译后应该重新拷贝) .拷贝资源 将SDK\assets,SDK\res中的所有资源拷贝到游戏相同目录下.(完成,注:assets每次编译后应该重新拷贝) .替换游戏厂商logo或游戏logo 将assets/OpeningAnimation 目录下的两个图片: g_logo_sp.png g_logo_cp.png 换成自己的. 有格式要求见文档. SP与CP相同时将其中一个换成游戏logo,避免重复 .替换游戏名称图片 SDK\assets\OpeningAnimation\g_game_title.png 有格式要求见文档. .添加SDK提供的Activity引用. A.将SDK\AndroidManifest.xml.activity.txt中的文本copy到游戏的AndroidManifest.xml中. B.android:screenOrientation,设置横竖屏,最好设置成主界面的横竖屏.(完成) .添加需要的权限use-permision 将SDK\AndroidManifest.xml.activity.txt中的文本copy到游戏的AndroidManifest.xml中(完成) 不要重复添加权限 .为游戏主入口添加中国移动游戏基地标识(Intent-Filter) 为游戏主入口Activity添加中国移动游戏基地标识 .游戏计费信息配置文件 assets下面有Charge.xml,ConsumeCodeInfo.xml(必须存在,待游戏提交后会动态替换这两个文件) .应用程序加载接口 游戏开发者在集成SDK,务必先自定义全局Application。Application里面代码必须包含: System.loadLibrary("megjb"); 可以直接拷贝SDKDemo中的java. 示例代码如下: public class CmgameApplication extends Application { public void onCreate() { System.loadLibrary("megjb"); } } AndroidManifest.xml中配置: 注意: 该Application类的package路径必须同AndroidManifest.xml中配置的packageName一致 .游戏初始化接口 游戏的初始化是实现游戏计费的必须操作。(必须在UI线程中调用) 在游戏启动之后先需要调用如下方法,否则无法使用计费功能 GameInterface.initializeApp(Activity gmain); 重载方法1,仅用于初始化SDK的基本信息,并不触发计费功能,游戏的计费行为可以通过2..2章节的doBilling接口完成,但是:如果游戏只有一个计费点,可以直接调用下面的简化接口,将初始化与试玩计费逻辑一并执行,请参考重载方法3。 如果希望由合作伙伴自己指定计费界面的游戏名称,游戏提供商及客服电话信息(SDK默认采用平台上申报业务时填写的客服电话),可以调用重载接口2实现: GameInterface.initializeApp(Activity main, String gameName, String provider, String serviceTel); 调用示例: GameInterface.initializeApp(this); .游戏的启动画面 方式一:调用SDK中的GameOpenActivity实现(推荐使用) 在AndroidManifest.xml中的主入口Activity配置为GameOpenActivity(即SDK提供的游戏启动画面的Activity)。游戏原来的主入口Activity请添加到res/values/g_strings.xml中的g_class_name字符串中,使得启动画面完成后即启动游戏 例如: "g_class_name">your.game.ui.Entry 另外:该方式可以通过接口GameInterface.isMusicEnabled()来判断用户是否选择开启背景音效,接口详细定义见(.9章节) 如果游戏使用的API Level是小于等于3的情况,即:游戏是基于Android .5开发的,那么还需要设置一个低版本标识,(API 小于4的情况,Android本身不支持图片自适配,故可能导致SDK中的界面元素被放大,UI效果差) "gc_billing_islow_version">true,这样SDK会读取该标识,并完成开机界面的自适配。 .游戏的退出接口 游戏退出时,需调用该接口完成退出逻辑,该接口是与2..2章节成对出现,前者用户初始化SDK实例,后者用于释放SDK占用的资源及内存,并实现退出确认界面。 调用接口: GameInterface.exit(Contextcontex, GameExitCallback callback); 调用示例:(具体可以参考Demo示例的BillingDemo.java) GameInterface.exit(BillingDemo.this, new GameExitCallback() { @Override public void onConfirmExit() { // 游戏开发者需要实现该方法,该方法是在用户点击确认退出后的回调实现 // 这里通常是释放游戏资源,关闭会话,finish界面等操作。 } @Override public void onCancelExit() { // 采用第一种方案,该接口方法可以不用添加任何代码,SDK内部会把当前的退出 // 界面finish掉,此处如果游戏开发者有特殊处理需要,可以另加实现代码。 } }); 在这里确定退出中调用2dx中的ene(),时会出现bug:第一次进入正常,第二次闪退,第三次正常,第四次闪退... 看logcat中会有如下错误: - ::08.922: D/cocos2d-x debug info(): OpenGL error 0x0501 in /Users/zxtw/Documents/cocos2d-x/cocos2d-.1rc0-x-2.1./cocos2dx/draw_nodes/CCDrawingPrimitives.cpp lazy_init 注:结果办法是system.exit(); .更多游戏接口 GameInterface.viewMoreGames(Context context); .SDK计费点开发 一.强制计费点时,调用这个计费点之前,必须调用获取付费标志接口,判断游戏是否已付费. .计费 通过GameInterface中的doBilling接口,可以直接启动计费Activity进行计费,计费Activity内部已经实现了默认的处理方法,合作伙伴只需要监听计费成功或失败的状态即可. 合作伙伴调用如下接口,完成计费流程,通过不同的参数值完成各种计费要求。 如果游戏希望在计费结束,比如计费成功、失败或用户取消计费后,处理自定义的逻辑, 请实现IPayCallback回调,其他情况可直接传null值。 如果游戏中某个计费点需要重复计费,请将isRepeated参数传true值。 GameInterface.doBilling(Context context, Boolean useSms, Boolean isRepeated,string billingIndex,IPayCallback billingCallback); 中国移动游戏基地游戏平台游戏内容下“激活点信息”中的“激活点计费代码”的后三位示例,计费点“激活游戏”的代码后三位为“”,计费点“超级弹簧”的代码后三位为“”。 代码调用示例: )采用短信计费模式,对计费代码后三位为””的计费点(非重复计费的计费点)进行付费 BillingCallback billingCallback = new BillingCallback() { @Override public void onBillingSuccess(String billingIndex) { System.out.println(“OK”); } @Override public void onBillingFail(String billingIndex) { System.out.println(“fail”); } @Override public void onUserOperCancel(String billingIndex) { System.out.println(“cancel”); } }; GameInterface.doBilling(this, true, false, “”, billingCallback); 或GameInterface.doBilling(this,true, false, “”, null); )采用联网计费,对计费代码后三位为””的计费点(可重复计费的计费点)进行付费 GameInterface.doBilling(this,false, true, “”, billingCallback); 特别说明:计费接口要在游戏的主线程里调用 .设置付费标志接口(不会用到) .获取付费标志接口(硬计费点时用到,但一般激活会在2dx中控制,不重要,但写上好一点吧) .获取游戏背景音乐开关(在sdk之后游戏初始化时调用,来设置游戏初始声音) .获取游戏玩家身份标识(不会用到)
出处:http://blog.sina.com.cn/s/blog_6324d6990101lgjl.html
cocos2d-x Android版游戏之中国移动SDK嵌入的更多相关文章
- 开发腾讯移动游戏平台SDK Android版Ane扩展 总结
本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方式 问题一:编译报错:Unable to resolve target 'android ...
- 用Kotlin破解Android版微信小游戏-跳一跳
前言 微信又更新了,从更新日志上来看,似乎只是一次不痛不痒的小更新.不过,很快就有人发现,原来微信这次搞了个大动作——在小程序里加入了小游戏.今天也是朋友圈被刷爆的缘故. 看到网上 有人弄了一个破解版 ...
- android版猜拳游戏源码分享
android版猜拳游戏源码分享安卓版猜拳游戏源码,该文件中带有安装测试包的,这个游戏源码比较简单的,现在有两个代码,一个自定义VIEW的,一个就是普通的imageView图片,游戏非常适合一些新手的 ...
- Android版的疯狂猜图游戏源码完整版分享
这个游戏源码是在安装教程网那么分享过来的,Android版的疯狂猜图游戏源码完整版分享,也是本人之前很早以前发的一款游戏源码的,大家如果想了解一下,可以看看吧,不说多了,上一个图先吧. > ...
- cocos2d 接 android sdk 的一个小坑 关于armbeabi 和 armbeabi-v7a
cocos2d 接 android sdk 的时候,有些sdk会要求外链到某个工程中,而这个工程的lib文件夹里会包含armbeabi 和 armbeabi-v7a这两个文件夹,如果直接打包会闪退.只 ...
- 微信5.0 Android版飞机大战破解无敌模式手记
微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...
- Android 2D游戏引擎AndEngine配置环境
Android 2D游戏引擎AndEngine配置环境 1.2 配置环境 在任何编程中,都需要一些软件或者硬件的支持.否则,没有硬件软件是不可能存在的,而想要编写对应语言的的程序,这需要对应语言库和 ...
- 【Unity游戏开发】SDK接入与集成——小白入门篇
一.简介 通常一款游戏开发到后期,一般都会涉及到第三方SDK的接入与集成,对于不熟悉SDK接入的同学来说,接SDK每次都是云里雾里,而熟悉SDK接入的同学又觉得不断地重复做接入SDK工作这样没有成就感 ...
- Android 3D游戏开发
OpenGL ES(OpenGL Embedded System) Android 3D游戏开发技术宝典:OpenGL ES 2.0(android 3d游戏开发技术宝典 -opengl es 2.0 ...
随机推荐
- android学习笔记28——Activity生命周期
Activity生命周期 Activity的活动状态由android已Activity栈的形式管理,当前活动的Activity位于栈顶.随着不同应用的运行,每个Activity都有可能从活动状态转入非 ...
- Android Gradle实用技巧——多渠道打包
友盟有很多不错的功能,例如渠道统计等. 想要做渠道统计,有一个要求就是要在manifest文件中添加各个渠道的配置.只有一两个渠道还好说,但是渠道多了的话,手动修改然后打包简直是噩梦. 幸好现在And ...
- bug_ _java.lang.IllegalArgumentException: View not attached to window manager 2
今天遇到一个很奇特的问题,当用户设置了PIN码,在锁屏界面正常解锁PIN码后,进入Launcher时显示com.android.phone 已停止运行.一开始猜想会不会是解锁PIN码的时候处理导致了P ...
- Android listview中使用checkbox
最近比较忙碌,我也不知道忙的什么东西,打算写的博客写了一半,还没写完,今天先扯一扯项目中遇到的一个问题,一方面防止以后遇到这个问题忘记如何解决,另一方面希望可以提供给遇到同样问题的朋友一个思路.下面开 ...
- oProfile 学习
oProfile工具可以分析CPU的负载量 只要对目标程序加上 -g 后重新编译,即可用oProfile进行分析 例如在测试apache的性能时, 增加 -g 编译选项[crifan@localhos ...
- 深入ThreadLocal之一
想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理.首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码 ...
- struts2请求过程源码分析
Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品,相 ...
- 转: Ubuntu 安装字体方法
命令安装: 以微软雅黑字体为例(其他的宋体.黑体等点阵字体都一样的),我们的雅黑字体文件是:Yahei.ttf(放在自己的主目录下)(在widows目录的Fonts目录下找需要的字体)由于我是双系 ...
- CentOS 安装 Chrome
cd /etc/yum.repos.d/ vi google.repo [gogle] name=Google-x86_64 baseurl=http://dl.google.com/linux/ ...
- .NET 中文转缩写拼音
public class CNToSpell { /// 汉字转拼音缩写 /// Code By MuseStudio@hotmail.com /// 2004-11-30 /// 要转换的汉字字符串 ...