getGameSignature
获取游戏签名
getGameSignature 方法用于获取指定游戏的启动授权签名。该签名包含了游戏版本、权限及运行时所需的加密信息,是后续进行预加载(PreLoad)或通过签名启动游戏的必要参数。
方法声明
java
/**
* 获取游戏签名
*
* @param params 包含游戏 ID 的参数对象
* @param listener 签名获取结果的监听器
*/
public static void getGameSignature(SUDOPGetGameSignatureParams params, SUDOPGetGameSignatureListener listener);参数说明
1. SUDOPGetGameSignatureParams
用于指定需要授权的游戏信息:
| 属性 | 类型 | 描述 |
|---|---|---|
| gameId | String | 必填。需要获取签名的游戏唯一标识。 |
2. SUDOPGetGameSignatureListener
用于接收签名数据或错误信息:
void onSuccess(String gameSignature):获取成功。返回的gameSignature字符串可用于后续的启动或预载接口。void onFailure(int retCode, String retMsg):获取失败。可能原因包括游戏 ID 不存在、应用权限不足或网络连接超时。
运行行为
- 鉴权校验:SDK 内部会首先确认当前是否已通过
auth接口完成用户鉴权。 - 安全请求:向 SUD 服务端发起安全请求,获取经过加密处理的游戏运行通行证。
- 缓存管理:SDK 可能会对有效的签名进行短时缓存,以优化重复启动的性能。
代码示例
java
// 1. 设置获取签名的参数
SUDOPGetGameSignatureParams params = new SUDOPGetGameSignatureParams();
params.gameId = "game_101";
// 2. 发起请求
SUDOP.getGameSignature(params, new SUDOPGetGameSignatureListener() {
@Override
public void onSuccess(String gameSignature) {
// 获取成功,可以保存此签名用于 startGameByGameSignature
Log.i("SUDOP", "Game signature obtained: " + gameSignature);
}
@Override
public void onFailure(int retCode, String retMsg) {
// 获取失败
Log.e("SUDOP", "Failed to get game signature: " + retMsg);
}
});注意事项
- 前置条件:调用此方法前必须确保
initSDK成功,且已调用auth完成用户登录鉴权。 - 安全性:
gameSignature包含敏感的授权信息,仅建议在内存中传递,不建议持久化到本地存储。 - 有效期:签名具有一定的时效性。若在预加载或启动时返回签名失效错误,需重新调用此接口。