客服SDK-Android(Java)

SDK合规指南

客服SDK合规指南

文档修订记录

文档版本 文档更新日期 文档更新内容
3.3.56 2024.05.10 1 新增SDK合规指南;2.可选个人信息的配置。
3.3.30 2021.11.18 文档改版

1 接入准备

1.1 导入SDK

如果游戏使用 Android Studio 管理工程,则做以下操作引入 SDK 代码。

1.打开下载好的 FYBase、FYService,拷贝文件夹中的 .aar 到工程的 libs 目录中,保持所有 .aar 在工程中只存在一份

2.打开工程的 build.gradle

  • 拷贝以下代码到 android 字段下。
repositories {
    flatDir {
        dirs 'libs'
    }
}
  • 拷贝以下代码到 dependencies 字段下。
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
fileTree(dir: 'libs', include: ['*.aar']).each { file ->
    api(name: file.name.lastIndexOf('.').with {
        it != -1 ? file.name[0..<it] : file.name
    }, ext: 'aar')
}

图片

1.2 添加SDK配置

1.到星云平台的"对接中心->SDK对接->SDK列表->基础接入参数->SDK配置参数"下载如下的配置文件:

配置参数

  • Android SDK 配置文件:FYCoreConfig.xml

2.打开以上的配置文件,拷贝所有meta-data配置参数到工程的 AndroidManifest.xml 中。保持所有配置参数在 AndroidManifest.xml 中只存在一份

3.可选个人信息的配置。如不希望本SDK采集某信息,请将对应字段的值改为0。如允许本SDK采集某信息,请将对应字段的值改为1

(1)在AndroidManifest.xml 中添加如下配置

<meta-data android:name="FY_GAME_PRIVACY" android:value="{
   "android_id ": "0",
   "basic_device_data" : "0",
   "os_version" : "0",
   "network_state" : "0"
}"/>

(2)字段名称说明

OS 个人信息类型及字段 用途和目的 是否可选 关闭方式
Android 设备基础信息(设备型号、硬件信息、屏幕分辨率) 帮用户排查异常时使用,作为异常分析的依据 修改配置参数 FY_GAME_PRIVACYbasic_device_data 字段值为"0"
Android Android ID 帮用户排查异常时使用,作为异常分析的依据 修改配置参数 FY_GAME_PRIVACY 的 android_id 字段值为"0"
Android 操作系统版本 帮用户排查异常时使用,作为异常分析的依据 修改配置参数 FY_GAME_PRIVACY 的 os_version 字段值为"0"
Android 网络状态 帮用户排查异常时使用,作为异常分析的依据 修改配置参数 FY_GAME_PRIVACY 的 network_state 字段值为"0"
Android OAID(版本3.3.56已去除) 帮用户排查异常时使用,作为异常分析的依据
Android MAC(版本3.3.56已去除) 帮用户排查异常时使用,作为异常分析的依据
Android IMEI(版本3.3.56已去除) 帮用户排查异常时使用,作为异常分析的依据

1.3 配置 Application

1、在游戏包名下新增一个 GameApplication类,该类继承自 Application,请重写GameApplication 类的 attachBaseContext 方法中调用以下代码:

FYAPP.getInstance().init(this);

打开 AndroidManifest.xml 在 application 将其继承于 GameApplication:

图片

2.如果游戏已经继承于其他 Application,请在游戏自定义的 Application 类的 attachBaseContext 方法中调用以下代码:

FYAPP.getInstance().init(this);

3.以上2个步骤任选1个接入,否则会造成 SDK 错误闪退

1.4 添加 Activity

打开 AndroidManifest.xml 添加 Activity。如果是横屏游戏,则com.stars.service.activity.FYServiceActivity 这个ActicityscreenOrientation 配置 sensor;如果是竖屏游戏,screenOrientation 配置 portrait

<activity 
        android:name="com.stars.service.activity.FYServiceActivity"
    android:screenOrientation="sensor"
    android:configChanges="orientation|screenSize|keyboardHidden" />

<activity 
    android:name="com.stars.debuger.activity.FYDebuggerInfoActivity"
    android:windowSoftInputMode="adjustResize|stateHidden"
    android:configChanges="orientation|screenSize|keyboardHidden" />

1.5 添加权限

打开 AndroidManifest.xml 添加如下权限配置:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"   />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

1.6 添加类引用

import com.stars.service.FYService;
import com.stars.service.model.FYSAfterEnterGameInfo;
import com.stars.service.model.FYSBeforeEnterGameInfo;
import com.stars.service.model.FYSBeforeLoginInfo;
import com.stars.service.model.FYSInitInfo;

1.7 添加 Activity 生命周期方法

1、说明

  • 调用点:onKeyDown生命周期

2、调用代码

FYDebugger.getInstance().onKeyDown(keyCode,event);

3、参考范例

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
  FYDebugger.getInstance().onKeyDown(keyCode,event);
  return super.onKeyDown(keyCode, event);
}

1.8 开启调试模式

1.将 AndroidManifest.xml 中的 FY_GAME_DEBUG 的值改为 1,即可开启「调试模式」;FY_GAME_DEBUG 改为 0,即关闭「调试模式」。

2.开启「调试模式」会显示客户端的悬浮球,点击进入调试工具可以查看接口/回调的调用信息,具体调试方法可查看文档

悬浮球

2 客户端接口

2.1 初始化(必接)

1、说明

  • 调用点:每次刚刚打开游戏时调用

2、调用代码

FYSInitInfo initInfo = new FYSInitInfo();
FYService.getInstance().doInit(initInfo);

3、参数

参数名 说明 是否必传
channelId 自定义渠道ID,数字格式。如有设置,则使用自定义渠道ID;如未设置:1.默认使用配置文件中的渠道ID 2.如有接入星云聚合SDK,则渠道ID与最终渠道包的一致

2.2 登录前调用客服接口

1、说明

在登录之前调用跳转客服系统,只需要传入游戏版本号即可。

2、调用代码

FYSBeforeLoginInfo loginInfo = new FYSBeforeLoginInfo();
loginInfo.setGameVersion("");
FYService.getInstance().beforeLogin(loginInfo);

3、参数

参数名 说明 是否必传
gameVersion 游戏版本号

2.3 登录后进入游戏前调用客服接口

1、说明

在登录成功之后,尚未进入游戏时调用跳转客服系统。

2、调用代码

FYSBeforeEnterGameInfo loginInfo = new FYSBeforeEnterGameInfo();
loginInfo.setGameVersion("");
loginInfo.setOpenId("");
FYService.getInstance().beforeEnterGame(loginInfo);

3、参数

参数名 说明 是否必传
gameVersion 游戏版本号
openId 用户唯一id 登录成功后返回

2.4 进入游戏后调用客服接口(必接)

1、说明

进入游戏后调用跳转客服系统。

2、调用代码

FYSAfterEnterGameInfo loginInfo = new FYSAfterEnterGameInfo();
loginInfo.setGameVersion("");
loginInfo.setOpenId("");
loginInfo.setPlayerLevelVip("");
loginInfo.setPlayerLevel("");
loginInfo.setServerName("");
loginInfo.setServerId("");
loginInfo.setPlayerId("");
loginInfo.setPlayerName("");
FYService.getInstance().afterEnterGame(loginInfo);

3、参数

参数名 说明 是否必传
gameVersion 游戏版本号
openId 用户唯一id 登录成功后返回
serverId 游戏服id
serverName 游戏服名称
playerId 角色id
playerName 角色名称
playerLevel 角色等级
playerLevelVip 角色vip等级