onGetUserProfile
获取用户敏感信息
该方法用于获取原APP用户敏感信息。主要用途是:为游戏提供APP敏感用户信息。
方法声明
java
/**
* 当 SDK 请求获取用户详细资料(User Profile)时触发。
* 通常涉及比基本信息更详细的字段,如性别、地区、实名状态等。
*
* @param handle 用于向 SDK 返回处理结果的状态句柄。
* @param dataJson 包含请求详细属性列表的 JSON 字符串。
*/
void onGetUserProfile(SUDOPStateHandle handle, String dataJson);运行行为
- 按需触发:当玩家在游戏内点击查看详细个人名片、或者游戏需要根据性别分配初始角色/皮肤时,引擎会发起此请求。
- 字段声明:
dataJson中通常会指明游戏具体需要的字段(例如["gender", "region"]),App 侧应根据这些字段进行精准返回。 - 权限校验:App 可以在此方法中加入隐私逻辑(例如:如果玩家设置了个人资料不可见,则不返回具体数据或返回脱敏后的数据)。
- 异步闭环:由于详细资料可能存储在不同的业务服务器,App 可以在获取所有字段后,通过
handle.success(resultJson)统一回传。
代码示例
实现详细资料的按需组装与回传:
java
@Override
public void onGetUserProfile(SUDOPStateHandle handle, String dataJson) {
try {
JSONObject profile = new JSONObject();
profile.put(SUDOP.KEY_USER_ID, userId);
// 根据业务逻辑填充详细字段
profile.put("gender", "male"); // 性别
profile.put("region", "Shanghai"); // 地区信息
// ...
// 3. 回传结果
handle.success(profile.toString());
} catch (Exception e) {
// 异常处理,通知 SDK 请求失败
handle.fail("unkonwn error");
}
}注意事项
- 数据一致性:确保返回的
userId与请求中的 ID 一致,避免数据串位。 - 字段规范:除了 SUDOP 预定义的常量字段外,若游戏有自定义扩展字段需求,需与游戏开发者约定好 JSON 的 Key 名。
- 非强制性:并非所有游戏都会调用此接口,如果游戏仅需要头像和昵称,通常只会触发
onGetUserInfo。