Message SDK 开发指南
版本号:message-sdk-1.2
1 SDK概述
海马云游戏消息SDK与客户端SDK为移动应用提供一个完善的云游戏消息传输的系统解决方案,对外提供了较为简洁的API接口,方便第三方应用快速集成。
本SDK提供的能力如下:
- (1) 消息SDK和游戏一起运行在海马云操作系统的云实例中,负责和客户端SDK进行双向通信。
- (2) 消息SDK也可以在手机上运行并不影响游戏的功能。
2 SDK集成准备
2.1 导入SDK
将jar文件拷贝到集成工程的app/libs目录下,并在app Module的build.gradle文件中,添加repositories和dependencies,并且添加所需依赖库,如下所示:
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation files('libs/MessageSDK.jar')
}
注:其中MessageSDK.jar是海马的消息SDK。
2.2 配置权限
<uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>
注:andriod 6.0之后,权限获取有所变动,请参考官网:
https://developer.android.com/training/permissions/requesting.html
2.3 混淆配置
请避免混淆海马SDK,在Proguard混淆文件中增加以下配置:
-keep class com.cloudplay.** {*;}
3 SDK集成
3.1 获取messageSDK实例
MessageSdk mInstance = MessageSdk.getInstance(String pkgName, String accessKeyId);
注:messageSDK是singleton的,全局可获取MessageSDK实例发送和接收消息。
- pkgName:当前集成SDK的应用包名。
- accessKeyId:海马云操作系统分配的唯一ID,类型(字符串)。
3.2 开启Log
void setDebug(boolean debug);
注:初始化后,调用该函数,参数为true后,可看到SDK的相关log,便于调试。
3.3 判断是否运行在海马云游戏实例中
boolean isRunningCloud();
注:消息SDK在海马云实例中才可以正常工作。
3.4 获取透传数据
public String getConfigInfo()
3.5 设置接收消息的Handler
mInstance.setMessageHandler(new MessageHandler() {
@Override
public void onReceiveMessage(MessageInfo messageInfo) {
Log.w(“recevice”, messageInfo.getMid() + ";" + messageInfo.getPayload());
}
});
注:海马云操作系统发送消息到SDK,SDK接收到消息后,通过MessageHandler返回MessageInfo到App。
public class MessageInfo {
private String mid; //消息ID,根据发送消息的时间,产生的消息唯一标识id。
private String payload; //消息内容
}
3.6 发送消息
MessageInfo info = mInstance.sendMessage("messageContent", new SendListener() {
@Override
public void sendResult(boolean success, String mid) {
}
});
注:
- messageContent:当前发送的消息内容,类型为String。
- SendListener:消息发送结果回调sendResult,mid消息id,success 等于 true为发送成功。
- mid:发送消息时,SDK返回一个消息的MessageInfo,MessageInfo中包含消息id,当消息发送失败时,返回失败消息的id,app可根据情况,通过id去标识消息,决定是否重新发送该id的消息。
3.7 关闭消息SDK长连接
mInstance.disConnect();
注:关闭消息SDK的长连接。
4 注意事项
- 消息SDK在海马云实例中才可以正常工作。
- 消息SDK初始化时,建立了与海马云操作系统的长连接,退出游戏时关闭长连接,释放资源。