隐私保护SDK-Unity(C#)

SDK合规指南

隐私保护SDK合规指南

1 文档修订记录

文档版本 文档更新日期 文档更新内容
3.3.8 2021.05.28 初版

2 接入准备

推荐C#4 以上版本,如果游戏是4及以下版本,可能会无法支持新特性

推荐Unity2018及以上版本

2.1 添加文件

  • 将文件FYBase.unitypackageFYPrivacy.unitypackage先后导入到您的Unity工程的Assets文件夹下
  • 导入方式:打开UNITY工程,菜单栏Assets=>Import Package=>Custom Package... ,之后选择文件导入工程

2.2 配置DLL文件平台属性

UNITY项目中,选择对应Dll文件,在Inspector面板=>Select platforms for plugin 勾选对应平台

如果已经配置,请忽略此步骤

  • Assets\Plugins\FYBase\FYBase.dll勾选"Any Platform",并勾选"iOS"和“Android”以排除这2平台
  • Assets\Plugins\FYBase\Android\FYBase.dll选择平台为"Android",注意"Any Platform"不要打钩
  • Assets\Plugins\FYBase\iOS\FYBase.dll选择平台为"iOS",注意"Any Platform"不要打钩
  • Assets\Plugins\FYPrivacy\FYPrivacy.dll选择平台为"Any Platform"

2.3 添加SDK配置

1.打开"星云平台->对接中心->SDK对接->SDK 列表->基础接入参数",找到 App ID、App Key、Company ID

UNITY配置界面

2.在UNITY打开星云配置界面

UNITY配置界面

3.将 App ID、App Key、Company ID 填入对应输入框,选择游戏屏幕朝向,点击确定,完成配置

UNITY配置界面

2.4 开启调试模式

1.将配置界面中的Debug勾选并点击确定,即可开启「调试模式」;取消勾选并点击确定,即关闭「调试模式」。

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

悬浮球

2.5 引入命名空间

游戏代码中引入以下命名空间,开始接入。

using FYPrivacy;

3 客户端接口与回调

接口接入的要诀?

  • 必接接口一定要接入,选接接口根据需要接入
  • 必传参数一定要传,能传的参数尽量都传

接口的回调何时注册?

  • 第一种方式:在初始化回调成功后注册其余的回调
  • 第二种方式:在每次调用对应接口前都预先注册对应的回调
  • 综合使用:先使用第一种方式,之后如需改变再重新注册

3.1 客户端回调

1.授权回调 FYPRAuthCallback

  • 为了防止在授权之前去获取设备信息,其他 SDK 的初始化、登录等接口,必须放在“授权回调”之后调用

  • 使用方式:

// 授权回调
FYPrivacyBridge.Instance.FYPRAuthCallback = (isAgree,hasUsedChannelPrivacy) => {
    if(isAgree){ // 用户已同意授权
        // TODO: 执行其他 SDK 的初始化
        // hasUsedChannelPrivacy:标识是否使用了第三方渠道的协议。true:是,false:否。如果为false,则游戏需显示“查看隐私协议按钮”,否则不显示。
        // 游戏在母包阶段,需对此参数做处理。打成渠道包后,会根据实际情况返回相应的值。
        // 未接入星云聚合SDK的游戏,可以忽略此参数对接。
    }else{ // 用户不同意授权
        // TODO: 直接退出游戏
    }
};

3.2 启动应用(必接)

1.方法

  • void Start(IList<string> protocolTitles = null, IDictionary<string, string> permissionInfos = null, string appId = "", string appKey = "")

2.说明

  • 调用点:每次打开游戏后马上调用
  • 为了防止在授权之前去获取设备信息,其他 SDK 的初始化、登录等接口,必须放在“授权回调”之后调用
  • 首次会弹出“隐私协议”弹窗。后续会根据用户实际授权情况,及后台设置重新授权的情况,决定是否再次弹出
  • 系统权限列表,需根据应用实际使用权限的情况传入

3.调用

IList<string> protocolTitles = new List<string>() {
    "xxx用户协议","xxx隐私协议","xxx儿童隐私保护"
};
IDictionary<string, string> permissionInfos = new Dictionary<string, string>() {
    { "phone", "xxx" } //key为系统权限类型,务必按照该接口的参数要求传递(小写字母);value 权限友好说明,如“正常识别手机设备及账号安全”
};
FYPrivacyBridge.Instance.Start(protocolTitles, permissionInfos);

4.参数

参数 说明 是否必传
protocolTitles 界面中各协议标题,如需自定义协议的名称,请按顺序传3个标题。协议名称的顺序,需按照“用户协议”、“隐私协议”、“儿童隐私保护”的顺序传入。如果为数组为空或不传,则使用SDK提供的默认标题
permissionInfos 展示系统权限列表(key:权限枚举值,value:用途说明),按数组顺序显示
appId appId,预留参数,不传
appKey appKey,预留参数,不传
  • permissionInfos中key为以下指定参数:
权限【Key 具体权限 权限说明
phone READ_PHONE_STATE、CALL_PHONE、READ_CALL_LOG、WRITE_CALL_LOG、ADD_VOICEMAIL、USE_SIP、PROCES_OUTGOING_CALLS 读取手机设备信息权限 如imei等硬件信息
camera camera 相机拍照权限
contacts READ_CONTACTS、 WRITE_CONTACTS GET_ACCOUNTS 读取手机联系人,通信记录
location ACCESS_FINE_LOCATION、ACCESS_COARSE_LOCATION 获取定位权限
microphone RECORD_AUDIO 手机麦克风权限
sms SEND_SMS RECEIVE_SMS、 READ_SMS RECEIVE_WAP_PUSH、 RECEIVE_MMS 读取手机短信权限
calendar READ_CALENDARWRITE_CALENDAR 日历权限
sensors BODY_SENSORS 传感器权限
storage READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE 存储权限

5.回调

  • 授权回调 FYPRAuthCallback

3.3 查看协议(必接)

1.方法

  • void CheckAuth()

2.说明

  • 调用点:在进入游戏后有个按钮用以触发查看协议,建议放在游戏内的设置菜单下。

3.调用

FYPrivacyBridge.Instance.CheckAuth();

4.参数

5.回调

  • 暂无

4 原生端对接

4.1 iOS

4.1.1 导出XCODE工程

  • 将UNITY项目导出为XCODE工程,然后就可以在Xcode开发工具上调试了

4.2 Andorid

4.2.1 导出Android工程

  • 方式一:使用UNITY打包Android APK调试
  • 方式二:将UNITY项目导出为Android Studio工程,然后就可以在Android Studio开发工具上调试了

5 F&Q

5.1 导出Android Studio或Xcode项目报错

该情况有可能是因为UNITY配置界面未配置完成,请查看该文档的添加SDK配置部分,重新操作一次