龙图安卓SDK接入说明

1.文档说明

1.1 功能描述

此文档主要是用于在游戏及应用开发商需要接入龙图BASE SDK时,了解BASE SDK如何接入,接入过程中需注意的事项等。

1.2 阅读对象

接入龙图BASE SDK的游戏及应用的android客户端开发者。

2.接入准备

服务端配置:请参考 通用接入文档—> 《SDK服务端接入说明文档》

3.特别说明

3.1 游戏版本命名

是指androidmainfest.xml中的versionName。

3.2 渠道识别

在龙图自动打包系统里,serviceId是区分渠道信息的标识,研发如果要识别当前游戏包属于哪个渠道,请调用获取serviceId的接口(11.2),并和技术经理匹配各serviceId对应的渠道。

3.3 游戏中接入第三方SDK

如果产品接入了第三方SDK,有需要根据包名、签名分配参数的情况,一定要提前通知技术经理。各个渠道包的包名、签名、证书等都不一样。自动打包将替换客户端包名、签名和证书。但不会自动替换第三方的参数。如地图、语音、推送能功能的第三方SDK。具体如何实现,需要根据具体情况操作。

3.3.1 AndroidManifest.xml 中配置包名替换

注意:AndroidManifest.xml 中有需要替换为包名的位置,需要配置为ltbase_package_name
打包时打包工具会将ltbase_package_name 替换为当前渠道包名。
列如:包名为com.ltbase.lib

  1. 配置为:
  2. <receiver android:name="com.android.PushServer.Alarm_BroadcastReceiver" >
  3. <intent-filter android:priority="1000" >
  4. <action android:name="android.intent.action.BOOT_COMPLETED" />
  5. <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
  6. <action android:name="pushserver.notice.ltbase_package_name" />
  7. </intent-filter>
  8. </receiver>
  9. 处理过为:
  10. <receiver android:name="com.android.PushServer.Alarm_BroadcastReceiver" >
  11. <intent-filter android:priority="1000" >
  12. <action android:name="android.intent.action.BOOT_COMPLETED" />
  13. <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
  14. <action android:name="pushserver.notice.com.ltbase.lib" />
  15. </intent-filter>
  16. </receiver>

3.4 龙图SDK中普通闪屏说明

游戏使用龙图sdk的闪屏功能时,可以按照下面的闪屏制作规范,添加相应图片资源即可, 最多支持配置5套游戏闪屏。(如果测试功能可以使用demo工程龙图logo图片)
闪屏图片 制作规范:
横屏:
ltbase_gamelogo_landscape1.png
ltbase_gamelogo_landscape2.png
ltbase_gamelogo_landscape3.png
ltbase_gamelogo_landscape4.png
ltbase_gamelogo_landscape5.png
注意:每套闪屏 都需要做三个尺寸的图片,一套闪屏 需要存放到4个目录中,以第一套为例:
res\drawable 存放 尺寸:1280x720 名称:ltbase_gamelogo_landscape1.png 图片
res\drawable-xhdpi 存放 尺寸:1280x720 名称:ltbase_gamelogo_landscape1.png 图片
res\drawable-xxhdpi 存放 尺寸:1920x1080 名称:ltbase_gamelogo_landscape1.png 图片
res\drawable-xxxhdpi 存放 尺寸:2560x1440 名称:ltbase_gamelogo_landscape1.png 图片

竖屏:
ltbase_gamelogo_portrait1.png
ltbase_gamelogo_portrait2.png
ltbase_gamelogo_portrait3.png
ltbase_gamelogo_portrait4.png
ltbase_gamelogo_portrait5.png
注意:每套闪屏 都需要做三个尺寸的图片,一套闪屏 需要存放到4个目录中,以第一套为例:
res\drawable 存放 尺寸:720x1280 名称:ltbase_gamelogo_portrait1.png 图片
res\drawable-xhdpi 存放 尺寸:720x1280 名称:ltbase_gamelogo_portrait1.png 图片
res\drawable-xxhdpi 存放 尺寸:1080x1920 名称:ltbase_gamelogo_portrait1.png 图片
res\drawable-xxxhdpi 存放 尺寸:1440x2560 名称:ltbase_gamelogo_portrait1.png 图片

3.5 龙图SDK中视频闪屏说明

目前仅支持播放一个视频闪屏,视频闪屏将在sdk图片闪屏之前显示,如果游戏需要使用sdk 视频闪屏功能,请按照下面视频的制作规范制作视频:
1.视频文件名称:
ltbase_logovideo.mp4
2.视频长度;
最大不超过10秒。
3.视频帧宽高:
横屏:1280X720
竖屏:720X1280
4.视频存放目录:
制作好的视频存放到res\raw目录下。

4.接入BASE SDK注意事项

4.1 游戏res文件夹中资源文件命名注意事项

游戏res资源文件中,png及xml文件命名最好不要过于简单,以免和第三方渠道重复。如close.png或close.xml命名的文件,可以加上游戏名前缀,game_close.png或game_close.xml。

4.2 游戏必须接入用户中心/切换账号/注销

需要根据调用龙图SDK提供的接口的返回值来确认游戏是否需要启用这三个接口和相应的UI按钮展示,因为根据渠道不同会用到其中之一或者所有或者都不用,具体接口调用详见接口说明(6.2.7)。

4.3 游戏必须接入BaseSDK与Activity生命周期的接口

  1. LTBaseSDK.getInstance(this).onPause()
  2. LTBaseSDK.getInstance(this).onRestart()
  3. LTBaseSDK.getInstance(this).onResume()
  4. LTBaseSDK.getInstance(this).onStart()
  5. LTBaseSDK.getInstance(this).onStop()
  6. LTBaseSDK.getInstance(this).onDestroy()
  7. LTBaseSDK.getInstance(this).onActivityResult(requestCode, resultCode, data)
  8. LTBaseSDK.getInstance(this).onConfigurationChanged(newConfig)
  9. LTBaseSDK.getInstance(this).onNewIntent(intent)
  10. LTBaseSDK.getInstance(this).onBackPressed();
  11. LTBaseSDK.getInstance(this).attachBaseContext(newBase)
  12. LTBaseSDK.getInstance(this).onRequestPermissionsResult(requestCode, permissions, grantResults)

5.导入BASE SDK

5.1 res中资源和lib库的导入

方式一:游戏工程直接引用《LTBase_Android_SDK_Lib_Base_完整版本号》此lib工程,工程内已包含res中的资源和lib库,assets中资源,请自行从《资源,LIB库和配置文件》目录中复制assets文件夹中内容到游戏工程的assets目录。如何引用lib工程这里不做详细说明,如不清楚如何导入lib工程到游戏工程请上网搜索,或者咨询龙图SDK技术人员。

方式二:直接从《资源,LIB库和配置文件》目录中复制所有资源和lib库到游戏工程的相应目录,包含res,libs,assets。

5.2 AndroidManifest.xml的配置

5.2.1 权限配置

  1. <!-- LTBaseSDK需要的权限 -->
  2. <uses-permission android:name="android.permission.INTERNET" >
  3. </uses-permission>
  4. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" >
  5. </uses-permission>
  6. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
  7. </uses-permission>
  8. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
  9. </uses-permission>
  10. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
  11. </uses-permission>
  12. <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" >
  13. </uses-permission>

5.2.2 其他必须配置项

  1. <!-- 游戏自己的启动activity类名,需要完整路径,必须配置 -->
  2. <meta-data
  3. android:name="ltbase_class_name"
  4. android:value="com.longtu.sample.LTBase_Demo_MainActivity" />
  5. <!-- 游戏请配置自己游戏的展示类型,竖屏游戏请配置成 portrait,横屏游戏请配置成landscape -->
  6. <meta-data
  7. android:name="ltbase_screenOrientation"
  8. android:value="landscape" />
  9. <!-- BASE SDK中上传崩溃日志的服务-->
  10. <service
  11. android:name="com.longtu.sdk.base.c.LTBaseCrashService"
  12. android:process=":ltbaseCrash">
  13. <intent-filter>
  14. <action android:name="ltbase.UpCrashLog" />
  15. </intent-filter>
  16. </service>

5.2.3 可选配置项

兼容android高版本 31以上版本增加了android:exported=”true”

  1. <!-- 闪屏配置,如使用此配置,请将游戏原启动activity的android.intent.category.LAUNCHER修改为android.intent.category.DEFAULT -->
  2. <activity
  3. android:name="com.longtu.sdk.base.logo.LTBaseLogoScreenActivity"
  4. android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"
  5. android:screenOrientation="landscape"
  6. android:exported="true"
  7. android:theme="@android:style/Theme.NoTitleBar" >
  8. <intent-filter>
  9. <action android:name="android.intent.action.MAIN" />
  10. <category android:name="android.intent.category.LAUNCHER" />
  11. </intent-filter>
  12. </activity>
  13. <!-- 闪屏默认配置 -->
  14. <meta-data
  15. android:name="ltbase_logo_flag"
  16. android:value="1" />
  17. <!-- 闪屏时间为 2S -->
  18. <meta-data
  19. android:name="ltbase_logotime"
  20. android:value="2000" />
  21. <!-- 视频闪屏默认配置 -->
  22. <meta-data
  23. android:name="ltbase_videologo_flag"
  24. android:value="1" />

5.2.4 其他注意事项

  1. <!-- 如游戏本身有Application类,则需要在代码中继承
  2. com.longtu.android.channels.Info.LTBase_Channels_Application;如游戏本身没有
  3. Application类,则需要在此添加配置,将AndroidManifest.xml中application的名字
  4. 命名为"com.longtu.android.channels.Info.LTBase_Channels_Application" -->
  5. <application
  6. android:name="com.longtu.android.channels.Info.LTBase_Channels_Application"
  7. android:allowBackup="true"
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name"
  10. android:theme="@style/NoTitle_FullScreen" >
  11. </application>

注意:APK安装位置属性必须配置为android:installLocation=”auto”

6.注册/登录【必接】

6.1 流程介绍

注册登录流程图
1.手机游戏客户端会调用base sdk登录接口,发起登录/注册请求;
2.base sdk向龙图用户中心服务器发起登录/注册的请求;
3.龙图用户中心服务器向base sdk返回token、用户信息等等;
4.base sdk向游戏客户端返回登录结果,包含token和用户相关信息;
5.游戏客户端上传用户信息到游戏服务器;
6.游戏服务器根据token向龙图用户中心服务器发起登录验证;
7.龙图用户中心服务器向游戏服务器返回用户信息;
8.游戏服务器向游戏客户端返回登录结果;

6.2 SDK初始化接口【必接】

6.2.1 接口定义

  1. /**
  2. * 初始化SDK
  3. *
  4. * @param gameResVer 游戏资源版本号,无资源版本号可传""
  5. * @param listener 回调接口
  6. */
  7. public void LTBaseSDKInit(String gameResVer, LTBaseSDKListener listener)

6.2.2 重要说明

void LTBaseSDKLogoutCallBack(int code, String msg);
SDK注销结果回调必须实现。
接收到此回调游戏需要退出游戏回到登录页面。
因为:
1,用户在渠道SDK悬浮框内点击回调会触发此接口
2,用户达到防沉迷标准后,SDK会主动回调此接口注销当前账号,以满足政府需求。

6.2.3 参数说明

参数名称 是否必传 类型 说明
gameResVer 可选 String 游戏资源版本号,如游戏无此概念则可以传null。
listener 必须 LTBaseSDKListener 游戏需实现此回调中的所有接口。

6.2.4 接口示例

  1. // 初始化SDK
  2. LTBaseSDK.getInstance(this).LTBaseSDKInit(gameResVer, new LTBaseSDKListener() {
  3. @Override
  4. public void LTBaseSDKExitgameCallBack(int arg0, String arg1) {
  5. // TODO Auto-generated method stub
  6. // 游戏使用龙图SDK退出接口时必须实现此回调,在此处实现退出游戏的功能。
  7. MainActivity.this.finish();
  8. // 不建议在此回调中使用杀进程的方式,杀进程的方法可以放到生命周期的onDestroy中。
  9. }
  10. @Override
  11. public void LTBaseSDKInitCallBack(int code, String arg1) {
  12. // TODO Auto-generated method stub
  13. if (LTBaseCallbackCode.CODE_INIT_SUCCESS == code) {
  14. // 游戏实现 初始化成功
  15. } else {
  16. // 游戏实现 初始化失败
  17. }
  18. }
  19. @Override
  20. public void LTBaseSDKLoginCallBack(int code, String msg, LTGameUserData arg2) {
  21. // TODO Auto-generated method stub
  22. if (code == LTBaseCallbackCode.CODE_LOGIN_SUCCESS) {
  23. //登陆成功
  24. } else {
  25. // 登录失败
  26. }
  27. }
  28. @Override
  29. public void LTBaseSDKSwitchLoginCallBack(int code, String msg, LTGameUserData userData) {
  30. // 当前渠道带有切换账号功能时,游戏需要实现此接口逻辑进行游戏登录。切换账号分2种情况:
  31. // 一是调用SDK的切换账号接口实现账号的切换,此类型的切换账号按钮是由游戏去实现,建议放到登录界面,切换账号成功后,登录数据会在此接口返回,游戏可执行游戏的登录流程,类似登录成功接口的回调。
  32. // 二是渠道SDK的悬浮框或者用户中心页面带有切换账号功能,如用户点击切换账号并登录成功后,登录数据会在此接口返回,但如果当前游戏场景处于游戏中,游戏正常应该先返回到登录界面,然后再通过SDK切换账号成功返回的数据执行游戏的登录流程。
  33. if (code == LTBaseCallbackCode.CODE_LOGIN_SUCCESS) {
  34. // 切换账号成功
  35. } else {
  36. // 切换账号失败
  37. }
  38. }
  39. @Override
  40. public void LTBaseSDKLogoutCallBack(int arg0, String arg1) {
  41. // TODO Auto-generated method stub
  42. // 注销成功 当前渠道带有注销功能的话由游戏实现,如返回到登录界面。
  43. }
  44. @Override
  45. public void LTBaseSDKPayCallBack(int code, String pbid, String orderID) {
  46. // TODO Auto-generated method stub
  47. if (code == LTBaseCallbackCode.CODE_PAY_SUCCESS) {
  48. // 支付成功
  49. } else if (code == LTBaseCallbackCode.CODE_PAY_FAIL) {
  50. // 支付失败
  51. } else if (code == LTBaseCallbackCode.CODE_PAY_CANCEL) {
  52. // 支付取消
  53. } else if (code == LTBaseCallbackCode.CODE_PAY_UNKNOWN){
  54. // 支付结果未知(下单成功)
  55. }
  56. }
  57. });

6.2.5 回调接口说明

  1. SDK初始化结果回调 void LTBaseSDKInitCallBack(int code, String msg);
  2. SDK登录结果回调: void LTBaseSDKLoginCallBack(int code, String msg, LTGameUserData userdata);
  3. SDK切换账号登录结果回调: void LTBaseSDKSwitchLoginCallBack(int code, String msg, LTGameUserData userdata);
  4. SDK支付结果回调: void LTBaseSDKPayCallBack(int code, String pbid, String orderID);
  5. SDK注销结果回调: void LTBaseSDKLogoutCallBack(int code, String msg);
  6. SDK退出游戏回调: void LTBaseSDKExitgameCallBack(int code, String msg);

以上接口中的code参数为状态码。

6.2.6 初始化结果回调

  1. /**
  2. * 初始化结果回调
  3. *
  4. * @param code 结果状态码
  5. * @param msg
  6. */
  7. void LTBaseSDKInitCallBack(int code, String msg);

6.2.7 初始化回调接口参数说明

参数名称 重要性 类型 说明
code 必须 int LTBaseCallbackCode.CODE_INIT_SUCCESS 为成功,其他为失败

6.3 SDK登录接口【必接】

6.3.1 功能说明

1.联运包调起联运SDK的登录界面;
2.官网包调起龙图官网登录界面;

6.3.2 接口定义

  1. /**
  2. * 登陆接口
  3. */
  4. public void LTBaseSDKShowLoginView()

6.3.3 接口示例

  1. // 调用登录接口
  2. LTBaseSDK.getInstance(MainActivity.this).LTBaseSDKShowLoginView();

6.3.4 登录成功回调接口

  1. /**
  2. * 登录结果回调
  3. *
  4. * @param code
  5. * @param msg
  6. * @param userdata
  7. */
  8. void LTBaseSDKLoginCallBack(int code, String msg, LTGameUserData userdata);

此接口为初始化中回调接口之一。

6.3.5 登录成功回调接口参数说明

参数名称 重要性 类型 说明
code 必须 int LTBaseCallbackCode.CODE_LOGIN_SUCCESS 为成功,其他为失败
msg 必须 String 描述
userdata 必须 LTGameUserData 当前登录用户的用户信息数据。

6.3.6 登录成功返回数据(LTGameUserData)说明

参数名称 类型 说明
getUid String 用户中心生成的用户ID,游戏应以此ID作为用户登陆的唯一标识
getToken String 用户中心生成的用户token,游戏需要用来向用户中心服务器做登录验证
getLogintype String 登录类型
getUsername String 用户中心生成的用户名称
getUserServiceCode String 设备当前serviceCode数据,用于服务端打点使用
getReturnJson String Json格式的字符串。第三方用户系统返回给用户中心的数据,不同渠道返回的数据会有所不同,游戏根据情况酌情使用,不需要的话可以不取。

getLogintype: 登录类型,具体值的含义请见下表

loginType 含义
speedyLogin 快速登录
speedyRegister 快速注册
commonLogin 普通登录
commonRegister 普通注册
thirdHiddenLogin 第三方用户登录
thirdHiddenRegister 第三方用户注册
phoneVerifyCodeLogin 手机验证码登录
phoneVerifyCodeRegister 手机验证码注册
phoneLogin 手机登录
phoneRegister 手机注册

6.3.7 登录失败回调

code为状态码,

code 含义
LTBaseCallbackCode.CODE_LOGIN_FAIL 登录失败
LTBaseCallbackCode.CODE_LOGIN_FAIL 登录失败,用户取消
LTBaseCallbackCode.CODE_LOGIN_TIMEOUT 登录失败,连接超时

6.4 sdk登录注销接口【必接】

6.4.1 功能说明

注销当前登录账号,注销成功后会调用游戏实现功能后的注销回调接口。

6.4.2 接口定义

  1. /**
  2. * 登陆注销
  3. */
  4. public void LTBaseSDKLogout()

6.4.3 接口示例

  1. LTBaseSDK.getInstance(MainActivity.this).LTBaseSDKLogout();

6.4.4 注销成功回调接口

  1. @Override
  2. public void LTBaseSDKLogoutCallBack(int code, String msg)

此接口为初始化中回调接口之一,具体逻辑请游戏客户端实现。
暂时此接口只有成功的情况,游戏不需要处理code和msg。

6.5 sdk切换账号接口【必接】

6.5.1 功能说明

某些渠道SDK当登录过一次后下次登录会变成自动登录,这个时候如果SDK内部没有注销或者切换账号的按钮,需要游戏调用此接口实现账号切换功能。

6.5.2 接口定义

  1. /**
  2. * 账号切换
  3. */
  4. public void LTBaseSDKSwitchAccount()

6.5.3 接口示例

  1. LTBaseSDK.getInstance(MainActivity.this).LTBaseSDKSwitchAccount();

6.5.4 切换账号登录成功回调接口

  1. /**
  2. * 切换账号登录结果回调(返回值和登录相同)
  3. *
  4. * @param code
  5. * @param msg
  6. * @param userdata
  7. */
  8. void LTBaseSDKSwitchLoginCallBack(int code, String msg, LTGameUserData userdata);

此接口为初始化中回调接口之一。

6.5.5 切换账号登录成功回调接口参数说明

参数名称 重要性 类型 说明
code 必须 int LTBaseCallbackCode.CODE_LOGIN_SUCCESS 为成功,其他为失败
msg 必须 String 描述
userdata 必须 LTGameUserData 当前登录用户的用户信息数据。

6.5.6 切换账号登录成功返回数据(LTGameUserData)说明

参数名称 类型 说明
getUid String 用户中心生成的用户ID,游戏应以此ID作为用户登陆的唯一标识
getToken String 用户中心生成的用户token,游戏需要用来向用户中心服务器做登录验证
getLogintype String 登录类型
getUsername String 用户中心生成的用户名称
getUserServiceCode String 设备当前serviceCode数据,用于服务端打点使用
getReturnJson String Json格式的字符串。第三方用户系统返回给用户中心的数据,不同渠道返回的数据会有所不同,游戏根据情况酌情使用,不需要的话可以不取。

getLogintype: 登录类型,具体值的含义请见下表

loginType 含义
speedyLogin 快速登录
speedyRegister 快速注册
commonLogin 普通登录
commonRegister 普通注册
thirdHiddenLogin 第三方用户登录
thirdHiddenRegister 第三方用户注册
phoneVerifyCodeLogin 手机验证码登录
phoneVerifyCodeRegister 手机验证码注册
phoneLogin 手机登录
phoneRegister 手机注册

6.5.7 切换账号登录失败回调

code为状态码。

code 含义
LTBaseCallbackCode.CODE_LOGIN_FAIL 登录失败
LTBaseCallbackCode.CODE_LOGIN_FAIL 登录失败,用户取消
LTBaseCallbackCode.CODE_LOGIN_TIMEOUT 登录失败,连接超时

6.6 角色信息设置接口【必接】

6.6.1 功能说明

成功登录并进入游戏后,游戏客户端必须调用此接口设置用户的角色信息,角色信息在其他功能接口中需要用到,如未调用则无法使用支付功能。用户首次创建或注册角色并登录时,需要调用一次注册设置和一次登录设置;用户使用老角色登录,则只需要调用一次登录设置。

LTROLE_SENDTYPE_LOGOUT 2.1.6版本 新增角色注销功能, 主要用于游戏内处理了角色登出,但是SDK没有办法拿到消息,在平台的统计数据上,角色在线数据不准的问题。

注意:
1.游戏内没有角色注册行为的,在游戏自动给用户创建角色的时候,即认为注册。
2.用户首次创建或注册角色并登录时,需先调用注册设置,再调用登录设置。
3.研发需要在本地做基础判断,一些特殊符号不允许出现在角色名、公会名、队伍名、联盟名等名称中,具体符号_(, | { } “ ‘ \ / @ $ # & ! - + ( ) . ? ~ )^*

6.6.2 接口定义

  1. /**
  2. * 游戏在创建角色、登录、角色数据发生变化时调用
  3. *
  4. * @param roleinfo
  5. */
  6. public void LTBaseSDKRoleInfo(final LTRoleInfo roleinfo)

6.6.3 LTRoleInfo 参数说明

参数名称 重要性 类型 说明
setSendtype 必须 String LTRoleInfo.LTROLE_SENDTYPE_REGISTER:角色注册, LTRoleInfo.LTROLE_SENDTYPE_LOGIN:角色登陆 , LTRoleInfo.LTROLE_SENDTYPE_CHANGE : 角色信息变更 LTROLE_SENDTYPE_LOGOUT 角色注销
setServername 必须 String 当前角色所在游戏服务器名称
setServerid 必须 String 当前角色所在游戏服务器ID
setRoleName 必须 String 角色名称
setPlayerid 必须 String 角色ID
setRolelevel 必须 String 角色等级
setViplevel 必须 String 角色VIP等级,没有等级可以传”0”
setLaborunion 非必须 String 角色所在公会
setRoleCreateTime 必须 String 角色创建时间(服务器采集)参数类型:String时间类型:long 精度:秒 (即10位数)
setRoleLevelMTime 必须 String 角色等级变化时间(服务器采集)参数类型:String 时间类型:long 精度:秒 (即10位数)

6.6.4 接口示例

  1. LTRoleInfo roleInfo = new LTRoleInfo();
  2. roleInfo.setSendtype(LTRoleInfo.LTROLE_SENDTYPE_REGISTER);
  3. roleInfo.setRoleName(rolename);
  4. roleInfo.setPlayerid(roleid);
  5. roleInfo.setServerid(ServerId);
  6. roleInfo.setServername(ServerName);
  7. roleInfo.setRolelevel(RoleLv);
  8. roleInfo.setViplevel(RoleVipLv);
  9. // 角色注册成功需调用此接口设置角色信息,接口第一个参数为LTRoleInfo.LTROLE_SENDTYPE_REGISTE表示注册,正常情况下,注册只在新角色注册成功后调用一次
  10. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).LTBaseSDKRoleInfo(roleInfo);
  11. LTRoleInfo roleInfo = new LTRoleInfo();
  12. roleInfo.setSendtype(LTRoleInfo.LTROLE_SENDTYPE_LOGIN);
  13. roleInfo.setRoleName(rolename);
  14. roleInfo.setPlayerid(roleid);
  15. roleInfo.setServerid(ServerId);
  16. roleInfo.setServername(ServerName);
  17. roleInfo.setRolelevel(RoleLv);
  18. roleInfo.setViplevel(RoleVipLv);
  19. // 角色登陆成功并成功进入游戏后需调用此接口设置角色信息,接口第一个参数为LTRoleInfo.LTROLE_SENDTYPE_LOGIN表示登陆,在每次角色登陆成功后都要调用
  20. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).LTBaseSDKRoleInfo(roleInfo);

6.7 进入用户中心【必接】

6.7.1 功能说明

进入第三方渠道SDK的用户中心或者论坛界面,或者进入官网SDK的用户中心界面。

6.7.2 接口定义

  1. /**
  2. * 进入用户中心接口,如果是用官网登陆的则进入官网的用户中心
  3. */
  4. public void LTBaseSDKShowUserCenter()

6.7.3 接口示例

  1. LTBaseSDK.getInstance(MainActivity.this).LTBaseSDKShowUserCenter();

6.8 判断是否使用“登录注销”,“切换账号”,“用户中心”接口【必接】

6.8.1 功能说明

“用户中心”,“切换账号”,“登录注销”等接口必须接入。提供此接口用来引导游戏合理使用以上三个接口。根据SDK返回的值,判断是否在相应渠道客户端中显示或隐藏UI展示,以及和是否调用以上三个接口。
比如当前渠道需要调用用户中心接口,则需要将用户中心按钮显示出来并实现其接口调用的功能,如不需要,则需要隐藏用户中心的按钮。其他功能同理。
此三个功能SDK只提供功能接口,无UI显示,所以需要游戏实现展示或者隐藏“用户中心”,“切换账号”,“登录注销”的UI按钮。根据返回值给予显示或者隐藏。

6.8.2 接口定义

  1. /**
  2. * 获取当前渠道游戏包是否要调用“用户中心”,“切换账号”,“登陆注销”等接口
  3. */
  4. public boolean isUserCenterEnable()
  5. public boolean isSwitchAccountEnable()
  6. public boolean isLogoutEnable()

6.8.3 接口示例

  1. LTBaseSDK.getInstance(this).isLogoutEnable();
  2. LTBaseSDK.getInstance(this).isSwitchAccountEnable();
  3. LTBaseSDK.getInstance(this).isUserCenterEnable();

返回数据如下,boolean格式:
true: 表示需要调用
false: 表示不需要调用

7.充值/发货流程【必接,CB期间根据运营需求接入】

7.1 流程介绍

计费流程图

1.游戏调用base sdk计费接口;
2.base sdk向计费中心发起支付请求;
3.计费中心生成订单号,sdk发起计费,服务器收到支付结果并向base sdk返回支付结果;
4.sdk回调游戏客户端支付完成
5.计费中心通知游戏服务器发货;
6.游戏服务器发送虚拟物品至玩家手机游戏客户端;
7.游戏服务器向计费中心返回发货结果;

7.2 接口介绍

7.2.1 支付接口

7.2.1.1 功能说明

调用自有支付功能或者第三方SDK的支付功能,实现游戏中的道具购买。
注意:
如游戏中所卖商品在游戏界面显示为“100元宝”,当调用支付接口时,商品名称请传“元宝”,商品数量请传“100”
如游戏中所卖商品在游戏界面显示为“月卡“,当调用支付接口时,商品名称请传“月卡”,商品数量请传“1”
如游戏中所卖“月卡”有多个,当调用支付接口时,商品名称建议传入月卡的金额。例如“30元月卡”、“50元月卡”等等,商品数量请传“1”
礼包类与月卡同理,请在商品名称尽量传入礼包对应的价格,例如:“30元礼包”,“50元礼包,商品数量请传“1”。
注意:官网包中支付宝等sdk支付方式,需要进行打包处理才可以支持。

7.2.1.2 接口定义

  1. /**
  2. * 游戏进行支付时调用
  3. *
  4. * @param product 支付商品信息
  5. */
  6. public void LTBaseSDKPay(final LTProduct product)

7.2.1.3 LTProduct 参数说明

参数名称 重要性 类型 说明
setProductId 必须 String 游戏自定义的商品ID,必传。
setPrice 必须 String 商品价格,单位为分。
setCurrencyType 必须 String 货币类型(1人民币2美元3日元4港币5英镑6新加坡币7越南盾8台币9韩元10泰铢)
setProductName 必须 String 商品名称
setBuyNum 必须 String 商品数量
setProductDesc 必须 String 商品描述
setCurrency 可选 String 购买的虚拟货币名称,比如 钻石,金币,宝石 等
setGamedDeliverUrl 可选 String 游戏发放道具服务器地址,用户支付成功后计费中心会回调此地址告知游戏进行道具发放。 可以配置到SDK后台。
setExtension 可选 String 游戏自定义数据,支付成功后,计费中心会将此字段数据回传给游戏服务器(最大支持150字符)
setRolelevel 可选 String 角色等级,请传数字。
setViplevel 可选 String 角色VIP等级,请传数字,如游戏中无角色VIP等级可以传0。

currencyType说明:

货币类型值 货币名称 货币单位
1 人民币
2 美元 美分
3 日元
4 港币
5 英镑 便士
6 新加坡币
7 越南盾
8 台币
9 韩元
10 泰铢 萨当

7.2.1.4 接口示例

  1. LTProduct product = new LTProduct();
  2. product.setBuyNum("100");
  3. product.setCurrency("钻石");
  4. product.setCurrencyType("1");
  5. product.setExtension("我是扩展字段");
  6. product.setGamedDeliverUrl("http://www.longtugame.com");
  7. product.setPrice("1");
  8. product.setProductDesc("100测试商品");
  9. product.setProductId("1000");
  10. product.setProductName("测试商品");
  11. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).LTBaseSDKPay(product);

7.2.1.5 回调接口说明

  1. /**
  2. * 支付结果回调
  3. *
  4. * @param code 结果类型
  5. * @param pbid 游戏支付的商品id
  6. * @param orderID 龙图计费中心产生的订单号。
  7. */
  8. void LTBaseSDKPayCallBack(int code, String pbid, String orderID);

此接口为初始化中回调接口之一。

7.2.1.6 回调接口参数说明

参数名称 重要性 类型 说明
code 必须 Int 结果状态码。
pbid 必须 String 游戏自定义商品ID。
orderID 必须 String 计费中心生成的订单号,支付失败或者用户取消支付时可能返回为空。

code 标识码说明

参数名称 说明
LTBaseCallbackCode.CODE_PAY_SUCCESS 支付成功
LTBaseCallbackCode.CODE_PAY_FAIL 支付失败
LTBaseCallbackCode.CODE_PAY_CANCEL 用户取消支付
LTBaseCallbackCode.CODE_PAY_UNKNOWN 支付结果未知(下单成功)

注:”CODE_PAY_UNKNOWN”表示当前订单已经成功提交,但用户是否进行支付,以计费中心服务器的通知为准。 “CODE_PAY_UNKNOWN”代表支付流程结束。”CODE_PAY_UNKNOWN”回调触发以后不会在有支付成功和支付失败的回调了,游戏需要根据服务器通知为准。

8.礼包码兑换【必接】

8.1 功能说明

通过礼包码来兑换游戏中对应的礼包。

8.2 接口介绍

8.2.1 礼包码兑换接口

8.2.1.1 接口定义

  1. /**
  2. * 礼包码兑换接口
  3. *
  4. * @param giftCode 礼包码
  5. * @param url 发货地址
  6. * @param extendParams 扩展参数
  7. * @param listener 回调
  8. */
  9. public void LTBaseSDKGiftCodeExchange(final String giftCode, final String url,
  10. final String extendParams,
  11. final LTBaseGiftCodeListener listener)

8.2.1.2 参数说明

参数名称 重要性 类型 说明
giftCode 必须 String 需要兑换的礼包码
url 必须 String 兑换成功后,计费中心会通知此地址发货。(游戏服发货地址)
extendParams 可选 String 游戏透传参数,通知发货时会原样返回。
listener 必须 LTBaseGiftCodeListener 客户端回调接口。

8.2.1.3 接口示例

  1. LTBaseSDK.getInstance(mActivity).LTBaseSDKGiftCodeExchange("礼包码",
  2. "http://xxxxxxxxx/xxxxxxxx","透传参数",
  3. new LTBaseGiftCodeListener() {
  4. @Override
  5. public void GiftCodeSuccess(String giftcode, String extendParams) {
  6. // TODO Auto-generated
  7. // method stub
  8. Toast.makeText(MainActivity.mMainActivity, "兑换成功", Toast.LENGTH_SHORT).show();
  9. }
  10. @Override
  11. public void GiftCodeFail(int code, String msg) {
  12. // TODO Auto-generated
  13. // method stub
  14. Logs.i("info", " 礼包码 兑换失败 code = " + code);
  15. }
  16. });

8.2.1.4 回调接口说明

兑换成功:

  1. @Override
  2. public void GiftCodeSuccess(String giftid, String extendParams)

giftid:礼包码归属的礼包ID。
extendParams:透传参数。

兑换失败:

  1. @Override
  2. public void GiftCodeFail(int code)

code:错误码。

9. Activity生命周期相关接口的调用【必接】

9.1 功能说明

因为某些第三方SDK需要用到生命周期中的某些方法,所以游戏客户端Activity中必须调用龙图SDK中定义的生命周期方法,否则可能会出现不可预估的问题。

9.2 接口介绍

9.2.1 onStart调用示例

  1. @Override
  2. protected void onStart() {
  3. // TODO Auto-generated method stub
  4. super.onStart();
  5. LTBaseSDK.getInstance(this).onStart();
  6. }

9.2.2 onRestart调用示例

  1. @Override
  2. protected void onRestart() {
  3. // TODO Auto-generated method stub
  4. super.onRestart();
  5. LTBaseSDK.getInstance(this).onRestart();
  6. }

9.2.3 onResume调用示例

  1. @Override
  2. protected void onResume() {
  3. // TODO Auto-generated method stub
  4. super.onResume();
  5. LTBaseSDK.getInstance(this).onResume();
  6. }

9.2.4 onPause调用示例

  1. @Override
  2. protected void onPause() {
  3. // TODO Auto-generated method stub
  4. super.onPause();
  5. LTBaseSDK.getInstance(this).onPause();
  6. }

9.2.5 onStop调用示例

  1. @Override
  2. protected void onStop() {
  3. // TODO Auto-generated method stub
  4. super.onStop();
  5. LTBaseSDK.getInstance(this).onStop();
  6. }

9.2.6 onDestroy调用示例

  1. @Override
  2. protected void onDestroy() {
  3. // TODO Auto-generated method stub
  4. super.onDestroy();
  5. LTBaseSDK.getInstance(this).onDestroy();
  6. }

9.2.7 onActivityResult调用示例

  1. @Override
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  3. // TODO Auto-generated method stub
  4. super.onActivityResult(requestCode, resultCode, data);
  5. LTBaseSDK.getInstance(this).onActivityResult(requestCode, resultCode, data);
  6. }

9.2.8 onConfigurationChanged调用示例

  1. @Override
  2. public void onConfigurationChanged(Configuration newConfig) {
  3. // TODO Auto-generated method stub
  4. super.onConfigurationChanged(newConfig);
  5. LTBaseSDK.getInstance(this).onConfigurationChanged(newConfig);
  6. }

9.2.9 onNewIntent调用示例

  1. @Override
  2. protected void onNewIntent(Intent intent) {
  3. super.onNewIntent(intent);
  4. LTBaseSDK.getInstance(this).onNewIntent(intent);
  5. }

9.2.10 onSaveInstanceState调用示例

  1. @Override
  2. protected void onSaveInstanceState(Bundle outState) {
  3. // TODO Auto-generated method stub
  4. super.onSaveInstanceState(outState);
  5. // 必须调用
  6. LTBaseSDK.getInstance(this).onSaveInstanceState(outState);
  7. }

9.2.11 onRequestPermissionsResult 调用实例

  1. @Override
  2. public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
  3. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  4. LTBaseSDK.getInstance(this).onRequestPermissionsResult(requestCode, permissions, grantResults);
  5. }

10.退出游戏【必接】

10.1 功能说明

调用第三方SDK的退出提示接口,如第三方SDK无退出提示接口则调用龙图SDK的退出提示界面或者直接退出游戏。

10.2 接口定义

  1. /**
  2. * 调用第三方SDK退出提示页面,
  3. * 如果第三方SDK无退出提示页面则调用龙图提示页面
  4. */
  5. public void LTBaseSDKExitGame()

10.3 接口示例

  1. @Override
  2. public boolean onKeyDown(int keyCode, KeyEvent event) {
  3. // TODO Auto-generated method stub
  4. if (keyCode == KeyEvent.KEYCODE_BACK) {
  5. LTBaseSDK.getInstance(this).LTBaseSDKExitGame();
  6. return true;
  7. }
  8. return super.onKeyDown(keyCode, event);
  9. }

10.4 退出回调

  1. /**
  2. * SDK退出回调
  3. *
  4. * @param code
  5. * @param msg
  6. */
  7. void LTBaseSDKExitgameCallBack(int code, String msg);

游戏需要在此回调内处理游戏退出逻辑。
此接口为初始化中回调接口之一。

11.其他接口

11.1 开启SDK日志输出【正式包需要关闭】

11.1.1 功能说明

打开后能在logcat看到SDK的日志输出,TAG为“LTBaseSDKLog”, 用于游戏接入SDK的调试阶段,出正式游戏包时请务必关闭日志输出。

11.1.2 接口示例

  1. // 设置打开日志输出
  2. LTBaseSDK.getInstance(this).setLogs(true);

true为打开,false为关闭。
研发不调用此接口,默认为关闭状态

11.2 获取平台ID【必接】

11.2.1 功能说明

获取当前游戏包中的ServiceId,(游戏联运渠道ID,游戏可根据此ID区分各发行渠道)。

11.2.2 接口示例

  1. LTBaseSDK.getInstance(this).getServiceId();

11.3 获取SNID【停用】

11.3.1 功能说明

获取当前游戏包的SNID, 主要是用来给BI平台发送日志使用, (兼容BI系统日志时使用)。

11.3.2 接口示例

  1. LTBaseSDK.getInstance(this).getsnId();

11.4 获取发行区域【选接】

11.4.1 功能说明

获取当前游戏包中的LocaleId, (游戏发行区域ID)。

11.4.2 接口示例

  1. LTBaseSDK.getInstance(this).getLocaleId();

11.5 获取机型组ID【选接】

11.5.1 功能说明

获取当前游戏包中的deviceGroupId, (机型组ID)。

11.5.2 接口示例

  1. LTBaseSDK.getInstance(this).getDeviceGroupId();

11.6 打开活动公告和登录公告接口【选接】

11.6.1 功能说明

调用打开活动公告接口,一般用于游戏内公告展示。回调里返回公告打开和关闭事件,回调接口目录:11.7

11.6.2 活动公告接口示例

  1. /**
  2. * 研发主动调用 打开游戏内活动公告,
  3. *
  4. */
  5. LTBaseSDK.getInstance(this).LTBaseOpenActivityNotice();

11.6.3 登录公告接口示例

  1. /**
  2. *研发主动调用 打开登录公告,
  3. *
  4. */
  5. LTBaseSDK.getInstance(this).LTBaseOpenLoginNotice();

11.7 设置公告页面开启关闭事件回调【选接】

11.7.1 功能说明

回调里返回公告打开和关闭事件

LTBaseSDKActivityNoticeClose 回调的时候运营可以透传一些数据, 研发可以根据运营需求对透传数据做对应处理。

11.7.2 接口示例

  1. /**
  2. * 设置公告页面开启关闭事件回调,
  3. *
  4. */
  5. LTBaseSDK.getInstance(this).LTBaseSetSDKNoticeListener(LTBaseSDKNoticeListener listener);

11.7.3 回调说明

回调给研发公告的事件,包含用户通过SDK悬浮层公告按钮点击以后的公告事件,研发主动调用活动公告打开关闭事件,公告不存在的回调。

  1. /**
  2. * 登录公告和游戏内活动公告打开关闭事件
  3. */
  4. private LTBaseSDKNoticeListener mLTBaseSDKNoticeListener = new LTBaseSDKNoticeListener() {
  5. /**
  6. * 登录公告打开事件,只有页面存在的时候,才会有打开的效果
  7. */
  8. @Override
  9. public void LTBaseSDKLoginNoticeStart() {
  10. Toast.makeText(LTBase_Demo_MainActivity.this, " 登录公告打开事件 ", Toast.LENGTH_SHORT).show();
  11. }
  12. /**
  13. * 登录公告关闭事件
  14. */
  15. @Override
  16. public void LTBaseSDKLoginNoticeClose() {
  17. Toast.makeText(LTBase_Demo_MainActivity.this, " 登录公告关闭事件 ", Toast.LENGTH_SHORT).show();
  18. }
  19. /**
  20. * 登录公告不存在,
  21. * 调用打开公告接口的时候,发现公告不存在的时候被调用
  22. */
  23. @Override
  24. public void LTBaseSDKNoLoginNotice() {
  25. Toast.makeText(LTBase_Demo_MainActivity.this, " 登录公告不存在 ", Toast.LENGTH_SHORT).show();
  26. }
  27. /**
  28. * 活动公告打开事件,只有页面存在的时候,才会有打开的效果
  29. */
  30. @Override
  31. public void LTBaseSDKActivityNoticeStart() {
  32. Toast.makeText(LTBase_Demo_MainActivity.this, " 活动公告打开事件 ", Toast.LENGTH_SHORT).show();
  33. }
  34. /**
  35. * 活动公告关闭事件
  36. */
  37. @Override
  38. public void LTBaseSDKNoActivityNotice() {
  39. Toast.makeText(LTBase_Demo_MainActivity.this, " 活动公告不存在 ", Toast.LENGTH_SHORT).show();
  40. }
  41. /**
  42. * 活动公告关闭事件,
  43. * 活动公告被关闭的时候展示
  44. * @param data 运营想要透传的数据,有可能为空
  45. */
  46. @Override
  47. public void LTBaseSDKActivityNoticeClose(String data) {
  48. Toast.makeText(LTBase_Demo_MainActivity.this, " 活动公告关闭事件 ", Toast.LENGTH_SHORT).show();
  49. }
  50. };

11.8 游戏进度上报【必接】

11.8.1 功能说明

研发上报游戏现在的进度,用于SDK标记游戏现在所处进度,并进行相关操作。
以悬浮层按钮开关为例:
SDK会在进入服务器列表时打开SDK悬浮功能条,
SDK会在离开服务器选择时关闭SDK悬浮功能条,
请研发上报事件时尽量准确。

11.8.2 上报进度参数说明

参数名称 说明
LTBaseParam.GAME_PROCESS_EVENT_TYPE_IN_SELECT_SERVERLIST 进入选择服务器列表页面的事件。
LTBaseParam.GAME_PROCESS_EVENT_TYPE_OUT_SELECT_SERVERLIST 离开选择服务器列表页面的事件。

11.8.3 接口示例

  1. /**
  2. * 研发主动调用,传入不同的事件用于标记游戏现在所处进度
  3. *
  4. */
  5. LTBaseSDK.getInstance(this).LTBaseSendGameProcess(int event);

11.9 打开游戏内外链(活动详情)【选接】

11.9.1 功能说明

打开游戏内活动详情页面,通过后台配置的活动id打开指定活动外链。

11.9.2 接口示例

  1. /**
  2. * 根据活动ID打开活动页面
  3. * @param activityId 外链id
  4. * @param roleLevel 当前角色等级
  5. * @param roleVipLevel 当前角色VIP等级
  6. * @param listener 活动公告回调
  7. */
  8. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).LTBaseOpenAvtivtyDetils("19",
  9. "10", "10", mLTBaseSDKActivityDetilsListener);

11.9.3 回调接口示例

  1. private LTBaseSDKActivityDetilsListener mLTBaseSDKActivityDetilsListener = new LTBaseSDKActivityDetilsListener() {
  2. /**
  3. * 登录公告弹出,适用于主动弹出。
  4. * @param activityId 研发打开的活动id
  5. */
  6. @Override
  7. public void LTBaseSDKActivityDetilsStart(String activityId) {
  8. Logs.i(LOGTAG, " mLTBaseSDKActivityDetilsListener 活动详情打开 活动ID activityId = "
  9. + activityId);
  10. }
  11. /**
  12. * 登录公告关闭返回
  13. * @param activityId 研发打开的活动id
  14. * @param data 暂时没用,为以后回传数据预约字段
  15. */
  16. @Override
  17. public void LTBaseSDKActivityDetilsClose(String activityId, String data) {
  18. Logs.i(LOGTAG, " mLTBaseSDKActivityDetilsListener 活动详情关闭 活动ID activityId = "
  19. + activityId);
  20. }
  21. /**
  22. * 没有登录公告
  23. * @param activityId 研发打开的活动id
  24. */
  25. @Override
  26. public void LTBaseSDKNoActivityDetils(String activityId) {
  27. Logs.i(LOGTAG, " mLTBaseSDKActivityDetilsListener 活动不存在 活动ID activityId = "
  28. + activityId);
  29. }
  30. };

11.10 客服反馈功能【弃用】

客服反馈功能弃用,请使用aihelp客服功能。

11.11 获取资源更新CDN地址功能【必接】

11.11.1 功能说明

初始化成功以后可以通过SDK获取配置到GSC后台的CDN数据。可以配置多个CDN和一个回源地址。
SDKV1.1.5 版本增加。

11.11.2 接口示例

  1. /**
  2. * 获取游戏更新资源使用的CDN地址,
  3. *
  4. * @param listener 获取结果回调
  5. */
  6. LTBaseSDK.getInstance(this).LTBaseSDKgetUpdateCDNPath(mLTBaseUpdatePCDNPathListener);

11.11.3 回调接口示例

获取成功后的 json格式说明

参数名 格式 说明
domainList String cdn地址集合,逗号分隔,研发可以按照顺序尝试使用
  1. /**
  2. * 获取CDN地址回调
  3. */
  4. private LTBaseUpdatePCDNPathListener mLTBaseUpdatePCDNPathListener = new LTBaseUpdatePCDNPathListener() {
  5. @Override
  6. public void getPathSuccess(JSONObject cdnPath) {
  7. Logs.i(LOGTAG, " mLTBaseUpdatePCDNPathListener getPathSuccess cdnPath = "
  8. + cdnPath.toString());
  9. // cdn地址集合,逗号分隔,研发可以按照顺序尝试使用
  10. try {
  11. String domainList = cdnPath.getString("domainList");
  12. } catch (JSONException e) {
  13. e.printStackTrace();
  14. }
  15. }
  16. @Override
  17. public void getPathFail(int code) {
  18. Logs.i(LOGTAG, " mLTBaseUpdatePCDNPathListener getPathFail code = "
  19. + code);
  20. }
  21. };

11.12 获取Servicecode【必接】

登录完成或者切换账号完成以后在登录数据内返回serviceCode。
LTGameUserData 对象内调用getUserServiceCode。

11.13 打开隐私协议。【必接】

11.13.1 功能说明

可以根据需求在游戏内添加打开隐私协议按钮。

11.13.2 接口示例

  1. LTBaseSDK.getInstance(this).LTBaseOpenAgreement();

11.14 获取当前设备的屏幕属性【选接】

11.14.1 功能说明

获取当前设备的屏幕属性,
获取当前设备是否是异形屏。异形屏类型,设备品牌和设备型号。

11.14.2 接口示例

  1. LTBaseDeviceInfo mLTBaseDeviceInfo = LTBaseSDK.getInstance(this).LTBaseGetCurrentDeviceInfo();

11.14.3 LTBaseDeviceInfo类介绍

参数名 类型 描述
getDeviceBrand() String 当前设备的品牌
getDeviceModel() 设备型号 当前设备的型号
getDeviceScreenType() int 异形屏类型

11.14.4 LTBaseDeviceInfo 异形屏类型定义

异形屏类型 状态码 描述
LTBaseDeviceInfo.LTBASE_DEVICE_SCREEN_TYPE_UNKNOWN -1 未知
LTBaseDeviceInfo.LTBASE_DEVICE_SCREEN_TYPE_FRINGE 0 刘海屏
LTBaseDeviceInfo.LTBASE_DEVICE_SCREEN_TYPE_DIGGINGHOLES 1 挖孔屏
LTBaseDeviceInfo.LTBASE_DEVICE_SCREEN_TYPE_WATERDROP 2 水滴屏
LTBaseDeviceInfo.LTBASE_DEVICE_SCREEN_TYPE_DOUBLEHOLE 3 双孔屏

11.15 获取客户端IP。【选接】

11.15.1 功能说明

返回客户端当前IP,请在登录成功后获取。

11.15.2 接口示例

  1. /**
  2. * @return 客户端IP
  3. */
  4. LTBaseSDK.getInstance(this).LTBaseGetClientIP();

11.16 充值异常SDK提示错误弹窗【选接】

11.16.1 功能说明

游戏判断下单时候充值异常(如当前充值的角色账号与登录账号关系不一致时),可调用此接口让SDK弹出固定的错误提示弹窗,用户点击弹窗上的确定按钮会自动退出当前账号登录让用户重新登录。

11.16.2 接口示例

  1. /**
  2. * @return 下单异常提示框
  3. */
  4. LTBaseSDK.getInstance(this).LTBaseShowOrderErrorTip();

11.17 第三方广告平台打点【选接】

11.17.1 功能说明

游戏端发送第三方的日志
比如给热云,友盟之类的第三方统计SDK发送。
需要运营和技术支持确定参数和日志key以后调用。

11.17.2 接口说明

  1. /**
  2. * 游戏端发送第三方的日志
  3. * 比如给热云,友盟之类的第三方统计SDK发送
  4. *
  5. * @param logKey 日志KEY
  6. * @param logValue 日志内容 HashMap key-val格式
  7. */
  8. public void LTBaseSDKSendAnalyticsInfoLog(String logKey,
  9. HashMap<String, Object> logValue)

11.17.3 接口示例

  1. /**
  2. * 举例:上报登录事件,带用户id。
  3. */
  4. HashMap<String, Object> logValue = new HashMap<String, Object>();
  5. logValue.put("userId", LTBase_Demo_MainActivity.LONGTU_UserId);
  6. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity)
  7. .LTBaseSDKSendAnalyticsInfoLog("login",
  8. logValue);

11.18 问卷调查打开【选接】

11.18.1 功能说明

打开问卷调查页面。
需要和技术支持协商使用,
问卷调查ID需要在平台配置。
此功能需要和服务端配合接入。
问卷网后台配置的所有外部参数,除request_id由平台生成外,其他参数都需要通过“透传参数”传过来才能显示在答卷数据中。
注意:(透传参数 HASHMAP,转JSON后,必须小于1000个字符)

11.18.2 接口说明

  1. /**
  2. * 打开问卷调查
  3. *
  4. * @param QuestionId 问卷id
  5. * @param roleLv 角色等级
  6. * @param roleVipLv 角色vip等级
  7. * @param value 透传参数 研发自定义 可以为null
  8. */
  9. public void LTBaseOpenQuestionnaire(final String QuestionId, final String roleLv, final String roleVipLv, final HashMap<String, String> value)

11.18.3 接口举例

  1. // 举例打开 问卷ID为:1 的问卷,
  2. // 角色等级:11 ,角色VIP等级:12, 透传参数 key1 value1, key2,value2.
  3. HashMap<String, String> mapValue = new HashMap<>();
  4. mapValue.put("key1", "value1");
  5. mapValue.put("key2", "value2");
  6. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity).LTBaseOpenQuestionnaire("1", "11", "12", mapValue);

11.19 打开webview【选接】

打开一个webview,并跳转到指定链接
2.0.3版本添加

11.19.1 接口使用说明

  1. /**
  2. * 打开内置webview
  3. *
  4. * @param url 需要打开的url
  5. */
  6. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity)
  7. .LTBaseSDKOpenWebview("需要打开的url");

11.20 打开论坛 【选接】

打开论坛功能。
SDK 2.1.7 版本增加

11.20.1 接口使用说明

  1. /**
  2. * 打开论坛
  3. */
  4. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity)
  5. .LTBaseOpenForum();

11.21 打开论坛 - 带透传参数 【选接】

打开论坛功能,并且带透传参数,
参数内容需要和平台提前约定好,可以用于规定指定打开某些页面的情况。
参数内容各个产品按需求和平台约定后透传,否则传的参数不会有任何效用。

SDK 2.2.4 版本增加
如果需要得到论坛的打开关闭状态可以接入(11.26 设置龙图论坛开启关闭事件回调)

11.21.1 接口使用说明

  1. /**
  2. * 打开论坛
  3. @param customparas 透传参数
  4. */
  5. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity)
  6. .LTBaseOpenForum(String customparas);

11.21.2 customparas 说明

该接口由SDK通过服务端接口platform-app-activity提供,负责按照论坛的要求整理跳转参数,并自动跳转到论坛地址
customparas 介绍

字段 类型 介绍
function string 功能标识; topicId:标识打开指定帖子,此时data中应该传帖子ID; subjectId:标识打开话题主页,此时data 中应该传话题id; encyclopedia:标识打开百科页面; gift-bag:标识打开礼包中心; userCenter:标识打开个人中心; 如果不填写该值,默认跳转到论坛首页
data string 根据不同的function传递不同的数据

11.22 个人信息清单 【必接】

打开个人信息收集清单页面
SDK 2.2.7 版本增加

11.22.1 接口使用说明

  1. /**
  2. * 个人信息清单
  3. */
  4. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity)
  5. .LTBaseOpenPersonalInfolist();

11.23 第三方共享个人信息清单 【必接】

打开第三方共享个人信息清单页面
SDK 2.2.7 版本增加

11.23.1 接口使用说明

  1. /**
  2. * 个人信息清单
  3. */
  4. LTBaseSDK.getInstance(LTBase_Demo_MainActivity.mMainActivity)
  5. .LTBaseOpenThirdInfolist();

11.24 获取客户端IP 所在国家。【选接】

11.24.1 功能说明

返回客户端当前IP 所在地域,请在登录成功后获取。
参数值来源于国际公认的国家和地区ISO 3166-1代码表

11.24.2 接口示例

  1. /**
  2. * @return 客户端IP地域
  3. */
  4. LTBaseSDK.getInstance(this).LTBaseGetClientIPCountry();

11.25 获取客户端IP 所在省份。【选接】

11.25.1 功能说明

返回客户端当前IP 所在地域,请在登录成功后获取。

11.25.2 接口示例

  1. /**
  2. * @return 客户端IP地域
  3. */
  4. LTBaseSDK.getInstance(this).LTBaseGetClientIPProvince();

11.26 设置龙图论坛开启关闭事件回调【选接】

11.26.1 功能说明

回调里返回龙图论坛打开和关闭事件, 需要得到论坛打开和关闭状态的产品可以使用
SDK 2.3.5 版本添加

11.26.2 接口示例

  1. /**
  2. * 龙图自有论坛 打开关闭回调配置
  3. *
  4. */
  5. LTBaseSDK.getInstance(this).LTBaseSetForumListener(mLTBaseForumListener);

11.26.3 回调说明

回调给研发论坛的事件,包含用户通过SDK悬浮层论坛按钮点击以后的打开关闭事件,研发主动调用论坛打开关闭事件。

  1. /**
  2. * 论坛打开关闭事件
  3. */
  4. private LTBaseForumListener mLTBaseForumListener = new LTBaseForumListener() {
  5. @Override
  6. public void onOpenForumListener() {
  7. Toast.makeText(LTBase_Demo_MainActivity.this, " 论坛打开事件 ", Toast.LENGTH_SHORT).show();
  8. }
  9. @Override
  10. public void onCloseForumListener() {
  11. Toast.makeText(LTBase_Demo_MainActivity.this, " 论坛关闭事件 ", Toast.LENGTH_SHORT).show();
  12. }
  13. };

11.27 选择服务器【选接】

11.27.1 功能说明

调用SDK客户端接口打开游戏选服界面选择服务器
SDK 2.4.0 版本添加

11.27.2 接口示例

  1. /**
  2. * 选服
  3. * 需要游戏同步开发此功能
  4. * @param productData 参数
  5. * @param callBack 回调
  6. */
  7. LTBaseSDK.getInstance(this).LTBaseSelectServerData(ArrayList<LTProductData> productDataLTSelectServerCallBack callBack);
productData参数说明 类型 说明
id String 产品id
customVersion String 自定义版本号
extendParams String 透传参数, 如:{"gameid":"510050","snid":"2001"}

11.27.3 接口举例

接口调用示例

  1. /**
  2. * 选服
  3. */
  4. LTProductData data1 = new LTProductData();
  5. data1.setId("20000041");
  6. data1.setCustomVersion("1.0.0");
  7. data1.setExtendParams("{\"gameid\":\"510050\",\"snid\":\"2001\"}");
  8. LTProductData data2 = new LTProductData();
  9. data2.setId("20000097");
  10. data2.setCustomVersion("2.0.0");
  11. data2.setExtendParams("{\"gameid\":\"2000009701\",\"snid\":\"2001\"}");
  12. ArrayList<LTProductData> list = new ArrayList<LTProductData>();
  13. list.add(data1);
  14. list.add(data2);
  15. LTBaseSDK.getInstance(this).
  16. LTBaseSelectServerData(list, new LTSelectServerCallBack() {
  17. @Override
  18. public void onSelectServerSuccess(String productId, String serverId, String roleId, String extendParams) {
  19. //选服成功
  20. //productId 产品id
  21. //serverId 服务器id
  22. //roleId 角色id(冗余参数,可能为空)
  23. //extendParams 透传参数
  24. }
  25. @Override
  26. public void onSelectServerFail(int errorCode) {
  27. //选服失败
  28. }
  29. });

12.分享功能【选接】

龙图SDK分享功能目前整合了微信、QQ、新浪微博、Facebook、Twitter等SDK,包含文本分享、图片分享、链接分享等功能。点击链接查看详情
http://sdk.longtubas.com/t3/241/4774/1500007595.html

13.语音功能【选接】

龙图SDK语音功能目前整合了腾讯语音SDK,包含离线语音、实时语音等功能。点击链接查看详情
http://sdk.longtubas.com/t3/241/4774/1500007727.html

14.图形验证功能【选接】

SDK图形验证功能封装了极验图形验证功能。点击链接查看详情
http://sdk.longtubas.com/t3/241/4774/1500007735.html

15.AIHelp客服功能【必接】

整合了AIHelpSDK,包含客服模块、FAQ模块、运营模块等功能。点击链接查看详情
http://sdk.longtubas.com/t3/241/4774/1500009869.html

16.资源预下载功能【选接】

SDK封装了vivo等渠道的资源预下载功能。点击链接查看详情
http://sdk.longtubas.com/t3/241/4774/1500010042.html

17.渠道论坛功能支持【选接】

渠道提供的论坛功能接口,暂时只有华为有此功能
http://sdk.longtubas.com/t3/241/4774/1500010887.html

状态码表

1.SDK客户端状态码表

状态码 状态描述
-1 未知错误
-2 URL错误
-3 请求用户中心失败
-4 支付失败,其他错误
-5 无网络
-6 用户中心返回数据解析失败
0 初始化失败
10 登录错误,其他错误
11 登录取消
12 登录时,用户输入信息错误
13 登录验证错误
14 登录验证参数错误
15 获取系统用户名错误
17 第三方SDK登录错误,目前只针对华为
18 登录状态失效,目前只针对百度
20 账号注册错误,其他错误
21 账号注册错误,验证失败
22 注册时,用户输入信息格式错误
30 修改账号密码错误
31 修改密码参数错误
32 修改密码验证失败
33 找回密码参数错误
40 绑定账号错误
41 绑定账号错误,验证错误
42 绑定账号错误,参数错误
100 支付相关参数错误
101 支付成功
102 支付失败
103 支付取消
104 下单成功
105 下单失败
106 解析支付协议失败
107 当前支付方式不可用
111 兑换礼包码,礼包码未输入
112 兑换礼包码,发货地址为空
113 兑换礼包码,数据解析错误
401 用户中心绑定手机失败