API说明及外部监听事件
Android端阿里云游戏平台PaaS SDK目前提供了以下API调用方法及外部监听事件的说明示例。
API方法及说明描述
API | 描述 |
init | 初始化SDK,需要将accessKey/accessSecret字段传入,内部有鉴权逻辑,鉴权失败会返回101030 |
prepare | 将游戏相关参数传入,开始启动前的资源调度 |
stopPreparing | 停止排队 |
start | 将游戏容器交给SDK,开始启动游戏(游戏页内调用) |
stop | 关闭游戏页时需要调用该方法,通知游戏服务器销毁实例 |
pause | 退到后台时调用该方法暂停游戏 |
resume | 返回前台时调用该方法恢复游戏 |
customGamepadEvent customKeyboardEvent customMouseEvent | 自定义手柄事件 自定义键盘事件 自定义鼠标事件 |
setDefaultGamepadIndex defaultGenericMotionEvent defaultKeyDown defaultKeyUp defaultTouchEvent | 设置SDK中内置手柄的index 使用SDK来处理物理手柄、键鼠事件 使用SDK来处理物理手柄、键鼠事件 使用SDK来处理物理手柄、键鼠事件 使用SDK来处理touch事件 |
sendTextToGame | 发送文字或信息到游戏 |
setHidConfig | 设置当前某个配置项的启用状态(true表示启用)配置项参考CGHid |
getHidConfig | 获取当前某个配置项的启用状态(true表示启用)配置项参考CGHid |
requestRegionList | 请求当前游戏可以连接的服务器节点 |
getCurrentRegion | 游戏页中,获取当前游戏连接的服务器节点 |
getVersion | 获取SDK的版本号 |
loadPlugin | 加载远程游戏插件 |
getGameSession | 获取当前游戏会话(用于联机) |
外部监听事件说明及示例
eventType | eventCode | eventMessage |
10 | 101030 101040 101099 102010 102030 | 租户鉴权出错 请求服务超时 请求服务异常 绑定长连接设备失败 绑定用户失败 |
20 | 201010 | 可以启动游戏页Activity |
30 | 301010 301020 301030 | 远程游戏插件包未加载成功 远程游戏插件包加载成功 远程游戏插件包加载失败 |
40 | 401010 401020 402010 402020 | json数据(节点列表返回数据:RegionObj) json数据(排队接口返回数据,包括排队中、取消排队和排队完成:CGSlotObj) json数据(试玩时长相关字段) json数据(游戏中试玩通知) |
50 | 501010 501020 501030 501040 502010 502020 502030 502040 502050 502060 503010 503020 503030 503040 503050 503060 503070 504010 504020 504030 505010 509010 509099 | 退出游戏中(正在存档和资源清理) 调度失败(端侧决定发起重新调度) 游戏启动失败 联机会话已过期 游戏数据异常 游戏未上线 不是租户的游戏 不是项目的游戏 租户项目并发数为0 租户游戏服务器维护中 租户错误 租户ak为空 租户项目为空 用户ID为空 同一个用户同时频繁点击 无可用游戏实例 游戏未对用户授权 系统出错 服务不可用 参数解析异常 试玩结束 调度异常(ip/port为空) 其它未知调度异常 |
60 | 601010 601020 601030 601040 609010 | 上次退出游戏存档失败 上次退出游戏未知异常 游戏容器初始化失败 游戏容器初始化超时 容器初始化异常(ip/port为空) |
70 | 701010 701020 | 因试玩结束停止游戏 因长时间未操作导致停止游戏 |
200 | 2001011 2001012 2001013 2001020 2001030 2001040 2001041 2001050 2001060 2001070 2001071 2001080 2001090 | 玩家在游戏内点击了退出游戏 因长时间未操作导致踢出游戏 因账户在其它设备登录而被踢出游戏 连接服务器用户鉴权失败 启动过程中,回到后台导致游戏启动失败 连接服务器失败 服务器连接断开 服务器停止了游戏 游戏启动超过加载时间了而断开 游戏卡住,服务器运行环境出问题 游戏异常退出导致服务中断 尝试连接的游戏服务器正在中止 该用户被踢出游戏 |
220 | 2201010 | 网络断开,游戏进入重连状态 |
230 | 2301010 | 游戏重连成功 |
250 | 2501010 | 游戏重连失败 |
270 | 2701010 2701011 2701012 2701040 | 开始启动游戏实例 服务器连接成功 启动鉴权成功 游戏画面准备就绪(启动完毕) |
280 | 2801010 2801020 2801030 | message值为码率 message值为帧率 message值为网络延迟 |
示例:外部如何监听SDK的通知
private BroadcastReceiver mLocalBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(CGGameConstants.ACTION_ACG_GAMEEVENT)) {
Bundle bundle = intent.getExtras();
int eventType = bundle.getInt(CGGameConstants.EVENT_TYPE);
String eventCode = bundle.getString(CGGameConstants.EVENT_CODE);
String eventMessage = bundle.getString(CGGameConstants.EVENT_MESSAGE);
//todo your code
}
}
}
CGHid
手柄模式信息
public enum CGHid
常量参数
名称(含声明参数) | 说明 |
HID_VIRTUAL("virtualGamePadEnabled",1) | 虚拟手柄模式 |
HID_TOUCH("touchEventEnabled",2) | 触摸屏模式 |
HID_PHYSICAL("physicalGamePadEnabled",3) | 物理手柄模式 |
HID_MOUSE("mouseEnable",4) | 鼠标模式 |
HID_KEYBOARD("keyboardEnable",5) | 键盘模式 |