集成材料 Android MobGame SDK 版本 : 2.3.0 目录 1 简介... 2 2 配置... 2 2.1 下载... 2 2.2 设计... 2 3 集成... 3 3.1 设计权限... 3 3.2 配置 MobGame Activity... 3 3.3 配置 Facebook... 3 3.4 配置 GCM... 4 3.5 配置 PayPal... 5 3.6 配置 tracking 的服务... 6 3.7 初始化 MobGameSDK... 7 3.8 处理活动... 8 3.9 使用基本功能... 9 4 Changelog... 11
1 简介 MobGameSDK 就是一个组库能帮助手机游戏可以接触 MobGame 平台所支持的功能如登录 在线支付 跟随和分析资料 该材料将会指导您一步一步的集成我们组库到贵方的游戏产品 若有任何问题需要解释, 请联系我们通过以下邮箱 android@mobgame.vn 或者参考在 http://doc.funtap.vn/android/ 2 配置 2.1 下载你可以在此下载 MobGame SDK 最新版本 我们的组库包括 : facebook: project 库 Facebook SDK google-play-services: project 库 Google Play Service MobGameSDK: project 库 MobGame Android SDK MobGameAdsSDK: project 库 MobGame Ads SDK MobGameSDKDemo (optional): 集成 MobGameSDK 的应用 demo 2.2 设计 配置 project MobGameSDK, MobGameAdsSDK, facebook, google-play-services 到 Eclipse 里 设计 MobGameSDK 成为你的 project 组库 2
3 集成 3.1 设计权限 申报必要权限到文件 AndroidManifest.xml: <permission android:name="[app_package_name].permission.c2d_message" android:protectionlevel="signature" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.camera" /> <uses-permission android:name="android.permission.get_accounts" /> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.use_credentials" /> <uses-permission android:name="android.permission.read_phone_state" /> <uses-permission android:name="android.permission.system_alert_window" /> <uses-permission android:name="android.permission.wake_lock" /> <uses-permission android:name="android.permission.vibrate" /> <uses-permission android:name="com.android.vending.billing" /> <uses-permission android:name="com.google.android.c2dm.permission.receive" /> <uses-permission android:name="[app_package_name].permission.c2d_message" /> <uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /> ** 注意 : 你要配置 [APP_PACKAGE_NAME] 跟你产品所使用的 package 名一样 3.2 配置 MOBGAME ACTIVITY 申报 MobGameActivity 在 tag <application> 在 file AndroidManifest.xml: android:name="com.mobgame.gui.mobgameactivity" android:configchanges="keyboard keyboardhidden screenlayout screensize orientation" android:screenorientation="portrait" android:theme="@android:style/theme.translucent.notitlebar.fullscreen" /> android:orientation 属性需要应分配适当的值是 portrait ( 应用于竖版游戏 ) 或者 landscape ( 应用于横版游戏 ) 3.3 配置 FACEBOOK 申报 FacebookActivity 在 tag <application> 在 file AndroidManifest.xml: 3
android:name="com.facebook.facebookactivity" android:configchanges="keyboard keyboardhidden screenlayout screensize orientation" android:screenorientation="portrait" android:theme="@android:style/theme.translucent.notitlebar.fullscreen" /> android:orientation 属性需要应分配适当的值是 portrait ( 应用于竖版游戏 ) 或者 landscape ( 应用于横版游戏 ) 为了可以使用 Facebook App Invite 功能, 你可以配置 deep link 给应用在你的申报 Activity 如下 : <! Main activity declaration --> android:name="vn.mobgame.demoapp.gameactivity" android:configchanges="keyboard keyboardhidden screenlayout screensize orientation" android:screenorientation="portrait" > <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> <! Setup deep link --> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default" /> <category android:name="android.intent.category.browsable" /> <data android:host="[mobgame_host_param]" android:scheme="[mobgame_schema_param]" /> </activity> ** 注意 :[MOBGAME_HOST_PARAM] 和 [MOBGAME_SCHEMA_PARAM] 将会按照每个游戏来配置和同时发送在附加文件 README.txt 3.4 配置 GCM Google Cloud Messaging (GCM) 给安卓 (Android) 是一个被 Google 提供用来发送提醒信息 (push notification) 首先, 创造一个 class GCMIntentService 继承于 MobGameGCMIntentService 并放在主 package: package [APP_PACKAGE_NAME]; // NOTE this must be your app package!!! import com.mobgame.mobgamegcmintentservice; public class GCMIntentService extends MobGameGCMIntentService { // TODO your code here 4
然后申报在 file AndroidManifest.xml 如下 : <receiver android:name="com.google.android.gcm.gcmbroadcastreceiver" android:permission="com.google.android.c2dm.permission.send" > <action android:name="com.google.android.c2dm.intent.receive" /> <action android:name="com.google.android.c2dm.intent.registration" /> <category android:name="[app_package_name]" /> <service android:name="[app_package_name].gcmintentservice" android:enabled="true" /> ** 注意 : 你的 class 必要取名为 GCMIntentService, 同时放在应用的主 package 3.5 配置 PAYPAL 进行申报在 File AndroidManifest.xml 里面的 tag <application> 里 PayPal 的 service 和 Activity: <service android:name="com.paypal.android.sdk.payments.paypalservice" /> android:name="com.paypal.android.sdk.payments.paymentactivity" /> android:name="com.paypal.android.sdk.payments.loginactivity" /> android:name="com.paypal.android.sdk.payments.paymentmethodactivity" /> android:name="com.paypal.android.sdk.payments.paymentconfirmactivity" /> 5
android:name="com.paypal.android.sdk.payments.paymentcompletedactivity" /> android:name="com.paypal.android.sdk.payments.paypalfuturepaymentactivity" /> android:name="com.paypal.android.sdk.payments.futurepaymentconsentactivity" /> android:name="com.paypal.android.sdk.payments.futurepaymentinfoactivity" /> android:name="com.paypal.android.sdk.payments.paypalprofilesharingactivity" /> android:name="com.paypal.android.sdk.payments.profilesharingconsentactivity" /> android:name="io.card.payment.dataentryactivity" /> android:name="io.card.payment.cardioactivity" android:configchanges="keyboardhidden orientation" /> 3.6 配置 TRACKING 的服务 我们收集和分析数据通过一些 tracking 服务如下 : AppsFlyer Google Play Service Google AdMob Mobgame 的内部 tracking 配置 AppsFlyer: <receiver android:name="com.appsflyer.multipleinstallbroadcastreceiver" android:exported="true" > <action android:name="com.android.vending.install_referrer" /> <receiver android:name="com.appsflyer.appsflyerlib" > <action android:name="android.intent.action.package_removed" /> <data android:scheme="package" /> ** 注意 : 首先你需要在申报 file AndroidManifest.xml 的 AppsFlyer 的 install receiver, 其他服务的 install receiver 轮流放在下面 配置 AdMob: <receiver android:name=" com.google.ads.conversiontracking.installreceiver " android:exported="true" > 6
<action android:name="com.android.vending.install_referrer" /> 配置 Google Play Service 里的 tracking 服务 : <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <service android:name="com.google.android.gms.analytics.analyticsservice" android:enabled="true" android:exported="false" /> <service android:name="com.google.android.gms.analytics.campaigntrackingservice" /> <receiver android:name="com.google.android.gms.analytics.analyticsreceiver" android:enabled="true" > <action android:name="com.google.android.gms.analytics.analytics_dispatch" /> <receiver android:name="com.google.android.gms.analytics.campaigntrackingreceiver" android:exported="true" > <action android:name="com.android.vending.install_referrer" /> Mobgame 内部 tracking 服务 : <receiver android:name="com.mobgame.installreceiver" android:exported="true" > <action android:name="com.android.vending.install_referrer" /> 3.7 初始化 MOBGAMESDK 在主 Activity ( 例如 :project demo 的主 Activity 是 GameActivity), 初始化 MobGameSDK 如下 : protected void oncreate(bundle savedinstancestate) { 7
super.oncreate(savedinstancestate); setcontentview(r.layout.activity_game); mobgamesdk = MobGameSDK.getInstance(); mobgamesdk.init(this, "[MOBGAME_APPKEY]"); mobgamesdk.setonloginlistener(monloginlistener); mobgamesdk.setonpaylistener(monpaylistener); // TODO your code here ** 注意 :[MOBGAME_APPKEY] 会按照具体游戏来调整, 我们将会一起发送在附加文件 README.txt 3.8 处理活动你需要处理一些活动在你 Activity 的 MobGameSDK : protected void onactivityresult( int requestcode, int resultcode, Intent data) { super.onactivityresult(requestcode, resultcode, data); mobgamesdk.onactivityresult(requestcode, resultcode, data); 接下来, 申报 OnLoginListener 和 OnPayListener 来处理 MobGameSDK 调回的 callback: OnLoginListener monloginlistener = new OnLoginListener() { ; public void onloginsuccessful(string accountid, String accesstoken) { // *required* set character info mobgamesdk.setuserconfig(mareaid, mareaname, mroleid, mrolename); // TODO handle login success public void onloginfailed(exception e) { // TODO handle login failure OnPayListener monpaylistener = new OnPayListener() { public void onpaysuccessful( String userid, String orderid, String orderproduct, String orderinfo, String ordertime, String platformprice, String gameprice, String state, String game_role_id, String game_area_id, 8
String is_sandbox) { // TODO handle payment success public void onpayfailed(exception e) { // TODO handle payment failure ; 3.9 使用基本功能在配置和初始化成功后, MobGameSDK 的功能可以容易使用, 如下 : 1. 登录 : mobgamesdk.login(); 2. 登出 mobgamesdk.logout(); 3. 支付 : mobgamesdk.payment(); 4. 支付与 state 参数 : mobgamesdk.payment(statepayment); 5. 信息 ( 不必要 ): mobgamesdk.dashboard(); 9
以下是一个安排信息 (Dashboard) 按钮和支付按钮游戏里的例如 但是, 公式 dashboard() 在 SDK v2 版本不必要, 因为它可以激活通过 SDK 的导航按钮 ; 10
4 CHANGELOG Version 2.3.0 ( 现行版本 ): MobGameSDK 只支持 Android 4.0 以上 增加 MobGame InstallReceiver (3.6 项 ) 优化集成步骤 ( 3.7 3.8 项 ): MobGameSDK 自动管理 Activity 的生命周期 不再使用的函数被标志 @Deprecated 并在将来进行删除. 对 push notification 错误问题进行修复 升级 MobGameAdsSDK 升级界面 修复其他错误和进行升级 Version 2.0.11 ( 稳定版本 ): 大更新 MobGameAdsSDK 加上关于 Facebook login 和导航按钮功能简单化集成 GCM 步骤升级界面修复关于 Facebook App Invite 的小 bug 修复关于 thread 的小 bug 修复其他问题和升级 Version 2.0.10b: 删除权限 android.permission.get_tasks (3.1 项 ) 修复 login email 和 Google Account 登陆问题 修复 push notification 问题 修复 IAB 支付问题 修复其他问题和升级 Version 2.0.9: 增加 MobGameAdsSDK (2.1 & 2.2 项 ) 对于 Google Account 加上 login 修改 app permission(3.1 项 ): o 要求加权限 android.permission.use_credentials o 要求加权限 android.permission.access_wifi_state 修复问题并升级 Version 2.0.7: 加上 MobCoin 功能新增 Google Play 登陆选择修复问题和升级 11
Version 2.0.6: 修复于 WebView cookies 和导航按钮修复问题和升级 Version 2.0.3: 玩家在游戏启动前进行登陆将会调回 OnLoginListener callback 修复界面和 WebView Version 2.0.2: 修复初始 MobGameSDK 方式 分配 mobgamesdk.oncreate() 前应该调用事件监听器 (EventListener) protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_game); mobgamesdk = MobGameSDK.getInstance(); mobgamesdk.init(this, "[MOBGAME_APPKEY]"); mobgamesdk.setonloginlistener(monloginlistener); mobgamesdk.setonpaylistener(monpaylistener); mobgamesdk.oncreate(); // TODO your code here 更改 MobGameSDK 的一些调用方式 : o 登陆 : mobgamesdk.login(); o 支付 : mobgamesdk.payment(); o 支付与 state 参数 : mobgamesdk.payment(statepayment); Version 2.0.1: 支持 Admob 在 file AndroidManifest.xml 更改那些申报 tracking 服务 (3.6 项 ) 12