1. . 拷贝API
  2.  
  3. SDK\runtime\CMBilling20007.jar拷贝至游戏工程的runtime目录下(或其他目录) ,但切记不能放在libs目录下编译,否则编译报错(如:bad range。)(完成)
  4.  
  5. SDK\libs\armeabi\libmegjb.so拷贝至游戏相同的目录。 (完成,注:每次编译后应该重新拷贝)
  6.  
  7. .拷贝资源
  8.  
  9. SDK\assets,SDK\res中的所有资源拷贝到游戏相同目录下.(完成,注:assets每次编译后应该重新拷贝)
  10.  
  11. .替换游戏厂商logo或游戏logo
  12.  
  13. assets/OpeningAnimation 目录下的两个图片:
  14.  
  15. g_logo_sp.png g_logo_cp.png 换成自己的. 有格式要求见文档.
  16.  
  17. SPCP相同时将其中一个换成游戏logo,避免重复
  18.  
  19. .替换游戏名称图片
  20.  
  21. SDK\assets\OpeningAnimation\g_game_title.png
  22.  
  23. 有格式要求见文档.
  24.  
  25. .添加SDK提供的Activity引用.
  26.  
  27. A.将SDK\AndroidManifest.xml.activity.txt中的文本copy到游戏的AndroidManifest.xml中.
  28.  
  29. B.android:screenOrientation,设置横竖屏,最好设置成主界面的横竖屏.(完成)
  30.  
  31. .添加需要的权限use-permision
  32.  
  33. SDK\AndroidManifest.xml.activity.txt中的文本copy到游戏的AndroidManifest.xml中(完成)
  34.  
  35. 不要重复添加权限
  36.  
  37. .为游戏主入口添加中国移动游戏基地标识(Intent-Filter
  38.  
  39. 为游戏主入口Activity添加中国移动游戏基地标识
  40.  
  41. .游戏计费信息配置文件
  42.  
  43. assets下面有Charge.xml,ConsumeCodeInfo.xml(必须存在,待游戏提交后会动态替换这两个文件)
  44.  
  45. .应用程序加载接口
  46.  
  47. 游戏开发者在集成SDK,务必先自定义全局ApplicationApplication里面代码必须包含:
  48.  
  49. System.loadLibrary("megjb");
  50.  
  51. 可以直接拷贝SDKDemo中的java.
  52.  
  53. 示例代码如下:
  54.  
  55. public class CmgameApplication extends Application {
  56.  
  57. public void onCreate() {
  58.  
  59. System.loadLibrary("megjb");
  60.  
  61. }
  62.  
  63. }
  64.  
  65. AndroidManifest.xml中配置:
  66.  
  67. 注意: Application类的package路径必须同AndroidManifest.xml中配置的packageName一致
  68.  
  69. .游戏初始化接口
  70.  
  71. 游戏的初始化是实现游戏计费的必须操作。(必须在UI线程中调用)
  72.  
  73. 在游戏启动之后先需要调用如下方法,否则无法使用计费功能
  74.  
  75. GameInterface.initializeApp(Activity gmain);
  76.  
  77. 重载方法1,仅用于初始化SDK的基本信息,并不触发计费功能,游戏的计费行为可以通过2..2章节的doBilling接口完成,但是:如果游戏只有一个计费点,可以直接调用下面的简化接口,将初始化与试玩计费逻辑一并执行,请参考重载方法3
  78.  
  79. 如果希望由合作伙伴自己指定计费界面的游戏名称,游戏提供商及客服电话信息(SDK默认采用平台上申报业务时填写的客服电话),可以调用重载接口2实现:
  80.  
  81. GameInterface.initializeApp(Activity main, String gameName, String provider, String serviceTel);
  82.  
  83. 调用示例:
  84.  
  85. GameInterface.initializeApp(this);
  86.  
  87. .游戏的启动画面
  88.  
  89. 方式一:调用SDK中的GameOpenActivity实现(推荐使用)
  90.  
  91. AndroidManifest.xml中的主入口Activity配置为GameOpenActivity(即SDK提供的游戏启动画面的Activity)。游戏原来的主入口Activity请添加到res/values/g_strings.xml中的g_class_name字符串中,使得启动画面完成后即启动游戏
  92.  
  93. 例如:
  94.  
  95. "g_class_name">your.game.ui.Entry
  96.  
  97. 另外:该方式可以通过接口GameInterface.isMusicEnabled()来判断用户是否选择开启背景音效,接口详细定义见(.9章节)
  98.  
  99. 如果游戏使用的API Level是小于等于3的情况,即:游戏是基于Android .5开发的,那么还需要设置一个低版本标识,(API 小于4的情况,Android本身不支持图片自适配,故可能导致SDK中的界面元素被放大,UI效果差)
  100.  
  101. "gc_billing_islow_version">true,这样SDK会读取该标识,并完成开机界面的自适配。
  102.  
  103. .游戏的退出接口
  104.  
  105. 游戏退出时,需调用该接口完成退出逻辑,该接口是与2..2章节成对出现,前者用户初始化SDK实例,后者用于释放SDK占用的资源及内存,并实现退出确认界面。
  106.  
  107. 调用接口:
  108.  
  109. GameInterface.exit(Contextcontex, GameExitCallback callback);
  110.  
  111. 调用示例:(具体可以参考Demo示例的BillingDemo.java
  112.  
  113. GameInterface.exit(BillingDemo.this, new GameExitCallback() {
  114.  
  115. @Override
  116.  
  117. public void onConfirmExit() {
  118.  
  119. // 游戏开发者需要实现该方法,该方法是在用户点击确认退出后的回调实现
  120.  
  121. // 这里通常是释放游戏资源,关闭会话,finish界面等操作。
  122.  
  123. }
  124.  
  125. @Override
  126.  
  127. public void onCancelExit() {
  128.  
  129. // 采用第一种方案,该接口方法可以不用添加任何代码,SDK内部会把当前的退出
  130.  
  131. // 界面finish掉,此处如果游戏开发者有特殊处理需要,可以另加实现代码。
  132.  
  133. }
  134.  
  135. });
  136.  
  137. 在这里确定退出中调用2dx中的ene(),时会出现bug:第一次进入正常,第二次闪退,第三次正常,第四次闪退...
  138.  
  139. logcat中会有如下错误:
  140.  
  141. - ::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
  142.  
  143. 注:结果办法是system.exit();
  144.  
  145. .更多游戏接口
  146.  
  147. GameInterface.viewMoreGames(Context context);
  148.  
  149. .SDK计费点开发
  150.  
  151. 一.强制计费点时,调用这个计费点之前,必须调用获取付费标志接口,判断游戏是否已付费.
  152.  
  153. .计费
  154.  
  155. 通过GameInterface中的doBilling接口,可以直接启动计费Activity进行计费,计费Activity内部已经实现了默认的处理方法,合作伙伴只需要监听计费成功或失败的状态即可.
  156.  
  157. 合作伙伴调用如下接口,完成计费流程,通过不同的参数值完成各种计费要求。
  158.  
  159. 如果游戏希望在计费结束,比如计费成功、失败或用户取消计费后,处理自定义的逻辑,
  160.  
  161. 请实现IPayCallback回调,其他情况可直接传null值。
  162.  
  163. 如果游戏中某个计费点需要重复计费,请将isRepeated参数传true值。
  164.  
  165. GameInterface.doBilling(Context context, Boolean useSms, Boolean isRepeated,string billingIndex,IPayCallback billingCallback);
  166.  
  167. 中国移动游戏基地游戏平台游戏内容下“激活点信息”中的“激活点计费代码”的后三位示例,计费点“激活游戏”的代码后三位为“”,计费点“超级弹簧”的代码后三位为“”。
  168.  
  169. 代码调用示例:
  170.  
  171. )采用短信计费模式,对计费代码后三位为””的计费点(非重复计费的计费点)进行付费
  172.  
  173. BillingCallback billingCallback = new BillingCallback() {
  174.  
  175. @Override
  176.  
  177. public void onBillingSuccess(String billingIndex) {
  178.  
  179. System.out.println(“OK”);
  180.  
  181. }
  182.  
  183. @Override
  184.  
  185. public void onBillingFail(String billingIndex) {
  186.  
  187. System.out.println(“fail”);
  188.  
  189. }
  190.  
  191. @Override
  192.  
  193. public void onUserOperCancel(String billingIndex) {
  194.  
  195. System.out.println(“cancel”);
  196.  
  197. }
  198.  
  199. };
  200.  
  201. GameInterface.doBilling(this, true, false, “”, billingCallback);
  202.  
  203. GameInterface.doBilling(this,true, false, “”, null);
  204.  
  205. )采用联网计费,对计费代码后三位为””的计费点(可重复计费的计费点)进行付费
  206.  
  207. GameInterface.doBilling(this,false, true, “”, billingCallback);
  208.  
  209. 特别说明:计费接口要在游戏的主线程里调用
  210.  
  211. .设置付费标志接口(不会用到)
  212.  
  213. .获取付费标志接口(硬计费点时用到,但一般激活会在2dx中控制,不重要,但写上好一点吧)
  214.  
  215. .获取游戏背景音乐开关(在sdk之后游戏初始化时调用,来设置游戏初始声音)
  216.  
  217. .获取游戏玩家身份标识(不会用到)

出处:http://blog.sina.com.cn/s/blog_6324d6990101lgjl.html

cocos2d-x Android版游戏之中国移动SDK嵌入的更多相关文章

  1. 开发腾讯移动游戏平台SDK Android版Ane扩展 总结

    本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方式 问题一:编译报错:Unable to resolve target 'android ...

  2. 用Kotlin破解Android版微信小游戏-跳一跳

    前言 微信又更新了,从更新日志上来看,似乎只是一次不痛不痒的小更新.不过,很快就有人发现,原来微信这次搞了个大动作——在小程序里加入了小游戏.今天也是朋友圈被刷爆的缘故. 看到网上 有人弄了一个破解版 ...

  3. android版猜拳游戏源码分享

    android版猜拳游戏源码分享安卓版猜拳游戏源码,该文件中带有安装测试包的,这个游戏源码比较简单的,现在有两个代码,一个自定义VIEW的,一个就是普通的imageView图片,游戏非常适合一些新手的 ...

  4. Android版的疯狂猜图游戏源码完整版分享

    这个游戏源码是在安装教程网那么分享过来的,Android版的疯狂猜图游戏源码完整版分享,也是本人之前很早以前发的一款游戏源码的,大家如果想了解一下,可以看看吧,不说多了,上一个图先吧.   > ...

  5. cocos2d 接 android sdk 的一个小坑 关于armbeabi 和 armbeabi-v7a

    cocos2d 接 android sdk 的时候,有些sdk会要求外链到某个工程中,而这个工程的lib文件夹里会包含armbeabi 和 armbeabi-v7a这两个文件夹,如果直接打包会闪退.只 ...

  6. 微信5.0 Android版飞机大战破解无敌模式手记

    微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...

  7. Android 2D游戏引擎AndEngine配置环境

    Android 2D游戏引擎AndEngine配置环境 1.2  配置环境 在任何编程中,都需要一些软件或者硬件的支持.否则,没有硬件软件是不可能存在的,而想要编写对应语言的的程序,这需要对应语言库和 ...

  8. 【Unity游戏开发】SDK接入与集成——小白入门篇

    一.简介 通常一款游戏开发到后期,一般都会涉及到第三方SDK的接入与集成,对于不熟悉SDK接入的同学来说,接SDK每次都是云里雾里,而熟悉SDK接入的同学又觉得不断地重复做接入SDK工作这样没有成就感 ...

  9. Android 3D游戏开发

    OpenGL ES(OpenGL Embedded System) Android 3D游戏开发技术宝典:OpenGL ES 2.0(android 3d游戏开发技术宝典 -opengl es 2.0 ...

随机推荐

  1. python asyncio笔记

    1.什么是coroutine coroutine,最早我是在lua里面看到的,coroutine最大的好处是可以保存堆栈,让程序得以继续执行,在python里面,一般是利用yield来实现,具体可以看 ...

  2. 【MySQL】unique列插入重复值解决方案

    当在一个UNIQUE键上插入包含重复值的记录时,我们可以控制MySQL如何处理这种情况:使用IGNORE关键字或者ON DUPLICATE KEY UPDATE子句跳过INSERT.中断操作或者更新旧 ...

  3. Android四:sqllite

    1.扩展类SQLiteOpenHelper xxSQLiteHelper extends SQLiteOpenHelper public xxSQLiteHelper(Context context, ...

  4. hive查询语句

    一. 为什么hive是数据仓库 hive局限于hdfs, 不能进行记录级别的增删改 hive底层的mapreduce启动耗时很长, 无法做到传统数据库的秒查, 只适合离线分析 hive不支持事务, 无 ...

  5. python urllib模块的urlopen()的使用方法及实例

    Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 一.urllib模块urlopen()函数: urlopen(url, data=N ...

  6. weinre 手机端页面调试

    Weinre代表 Web Inspector Remote,是一种远程调试工具, 采用nodejs做为http服务器,用ajax通信 nodejs 官网 weinre官网 1.安装nodejs  会自 ...

  7. java 编译中没有清除之前编译出来的文件。

    最近在写一个类时候使用了内部类,然后又将这个类改用普通类来实现.但在运行时访问局部变量时候出现了NullPointException异常,想来想去没有想明白,后来清除了一个之前编译出来的文件*.cla ...

  8. Windows服务程序和安装程序制作

    转:http://www.cr173.com/html/15350_1.html 本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建 ...

  9. [转载]socket下server端支持多客户端并发访问简单实现

    /*Author: wainiwann *Source: 博客园 http://www.cnblogs.com/wainiwann *Remarks:  转载请说明出处!!! */ 感觉很不错,可以学 ...

  10. Jetty服务器jmx监控

    Jetty服务器jmx监控 Jetty 服务器增加jmx,jmx-remote模块 1.修改对应jetty服务器的配置文件start.ini追加如下两行–module=jmx–module=jmx-r ...