EasyGame客户端对接文档
1.配置开发环境
使用7725SDK需要完成下面5个步骤:
1.把res中所有资源拷贝合并到你项目res目录中。
2.把assets中的内容拷贝合并你的项目assets目录中。
3.把libs中所有jar包拷贝到你的项目libs目录中。
2.配置AndroidManifest.xml
1.添加permission
<!-- easygame SDK PERMISSION START. -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="com.library.permission.ACCESS_DOWNLOAD_MANAGER" />
<uses-permission android:name="com.library.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED" />
<uses-permission android:name="com.library.permission.SEND_DOWNLOAD_COMPLETED_INTENTS" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
android:name="com.library.permission.ACCESS_DOWNLOAD_MANAGER"
android:description="@string/permdesc_downloadManager"
android:label="@string/permlab_downloadManager"
android:protectionLevel="normal" />
<permission
android:name="com.library.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED"
android:description="@string/permdesc_downloadManagerAdvanced"
android:label="@string/permlab_downloadManagerAdvanced"
android:protectionLevel="normal" />
<permission
android:name="com.library.permission.SEND_DOWNLOAD_COMPLETED_INTENTS"
android:description="@string/permdesc_downloadCompletedIntent"
android:label="@string/permlab_downloadCompletedIntent"
android:protectionLevel="normal" />
<!-- easygame SDK PERMISSION END. -->
2.添加application相关属性
<!-- easygame SDK ACTIVITY,SERVER,RECEIVER START -->
<activity
android:name="com.platform7725.gamesdk.CustomerServiceActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@style/p7725_full_screen" />
<activity
android:name="com.platform7725.gamesdk.DepositsActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@style/p7725_full_screen"
android:windowSoftInputMode="adjustResize" />
<activity
android:name="com.platform7725.gamesdk.LoginProActivity"
android:theme="@style/LoginPro" />
<activity
android:name="com.platform7725.gamesdk.LoginActivity"
android:theme="@style/Login" />
<activity
android:name="com.platform7725.gamesdk.UserListActivity"
android:theme="@style/UserList" />
<activity
android:name="com.platform7725.gamesdk.ExitActivity"
android:theme="@style/Login" />
<activity
android:name="com.platform7725.gamesdk.ShareByFacebookActivity"
android:theme="@style/UserList" />
<activity
android:name="com.platform7725.gamesdk.ShareByLINEActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@style/p7725_full_screen" />
<activity
android:name="com.platform7725.gamesdk.ClauseActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@style/p7725_full_screen" />
<receiver android:name="com.platform7725.gamesdk.receive.OtopGameReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.intent.action.BATTERY_CHANGED" />
</intent-filter>
</receiver>
<receiver
android:name="com.appsflyer.MultipleInstallBroadcastReceiver"
android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver
android:name="com.platform7725.gamesdk.InstallReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver
android:name="com.mobileapptracker.Tracker"
android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service android:name="com.kuadcpa.OpenUDID_service" >
<intent-filter>
<action android:name="org.openudid.GETUDID" />
</intent-filter>
</service>
<service android:name="com.platform7725.gamesdk.service.OtopGameService" >
<intent-filter>
<action android:name="com.platform7725.gamesdk.service.NOTICES_FILTER" />
</intent-filter>
</service>
<activity
android:name="com.facebook.LoginActivity"
android:label="@string/com_7725_app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/com_7725_facebookSdkApplicationId" />
<meta-data
android:name="com_7725_payment_flag"
android:value="gash" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<!-- easygame SDK ACTIVITY、SERVER、RECEIVER END. -->
<!-- download Begin -->
<activity
android:name="com.library.providers.downloads.ui.DownloadListActivity"
android:launchMode="singleTask"
android:theme="@style/p7725_full_screen" />
<activity
android:name="com.p7725.downloadmanager.DownloadManagerActivity"
android:theme="@style/p7725_full_screen" />
<provider
android:name="com.library.providers.downloads.DownloadProvider"
android:authorities="com.platform7725.gamesdk"
android:exported="false" />
<service android:name="com.library.providers.downloads.DownloadService" />
<receiver
android:name="com.library.providers.downloads.DownloadReceiver"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<!-- download End -->
3.代码相关接口说明
1.调用登录界面
通过调用静态方法
LoginProActivity.login(requestCode, callback, context)
进行登录。登录成功后,帐户信息封装为USER添加到intent,通过接口回传。
requestCode:返回码,接入方定义,用于LoginActivity界面返回本游戏界面时触发onActivityResult的响应码。
Callback:ITopSDKEventsListener接口,登录成功后,数据将封装到intent,并通过这个接口回调。请接入方的activity实现该接口,编写登录成功后的代码。
Context:当前的context
示例
LoginProActivity.login(LOGIN_CODE, new ITopSDKEventsListener() {
@Override
public void onEventDispatch(int code, Intent data) {
Log.e("onEventDispatch--->", "code:" + code);
User user = (User) data.getSerializableExtra("user");
if (user != null) {
String nickName = user.getNickname();
Toasts.makeText(context, "账号登录成功:"+nickName);
}
}
}, context);
2.获取登录用户资料
在Activity中实现ITopSDKEventsListener接口,实现onEventDispatch方法获取用户资料(Class User, User结构)
User user = (User) getIntent().getSerializableExtra("user");
User类提供的函数
方法名 返回值数据类型 返回值含义
getUserID() String easygame用户惟一标识
getNickName() String easygame用户昵称
getSex() String easygame用户的性别,枚举值:男、女
getLoginTime() Integer easygame用户本次成功登录时间,UNIXTIME时间戳
getSign() String 给游戏服务器验签使用,验签方式
getGame() String 用户来源游戏别名,如:fengyuntx、7725
getOpenidChannel() String 用户来源渠道名,枚举值:Facebook, Google
getOpenUID() String OPENID用户标识,有约定的游戏才可以使用
setServer (serverID) Boolean 用户进入伺服器时调用,区分伺服器的游戏若无调用本函数将无法使用储值功能
setRole(roleid, rolename) Boolean 用户登入角色时调用,不管首次或下次登入都需要调用,有角色名的游戏若无调用本函数将无法使用储值功能
3.游戏服务端登录验证
游戏客户端发送以下参数到游戏服务端进行验证。如:
userid = User.getUserID()
openuid = User.getOpenUID()
nickname = User.getNickName()
sex = User.getSex()
logintime = User.getLoginTime()
Sign = User.getSign()
签名加密方式
Sign = md5( game_server_key + userid + openuid + nickname + sex + logintime );
注:集成过程中,发现不少厂商将上述参数作特殊字符过滤处理,导致签名校验失败,在此强调 md5 加密用的参数,绝不能过滤特殊字符。
4.进入充值界面 调用方法
DepositsActivity.pay(context, info, extra);
- context :当前上下文
- info:是游戏自定义的字符串参数,可留空。
- extra:json格式参数,用于是否显示google play以外的储值方式。如:{“payment_flag”:"1"} 1是开启,0是关闭
示例
DepositsActivity.pay(context, "", "{\"payment_flag\":\"0\"}");