ECMessage 对象发送到服务器a
标准的发送一个文本、图片或者附件消息代码如下:
try {
// 组建一个待发送的ECMessage
ECMessage msg = ECMessage.createECMessage(ECMessage.Type.TXT);
//设置消息的属性:发出者,接受者,发送时间等
msg.setForm("$Tony的账号");
msg.setMsgTime(System.currentTimeMillis());
// 设置消息接收者
msg.setTo("$John的账号");
msg.setSessionId("$John的账号");
// 设置消息发送类型(发送或者接收)
msg.setDirection(ECMessage.Direction.SEND);
// 创建一个文本消息体,并添加到消息对象中
ECTextMessageBody msgBody = new ECTextMessageBody(text.toString());
// 或者创建一个图片消息体 并且设置附件包体(其实图片也是相当于附件)
// 比如我们发送SD卡里面的一张Tony_2015.jpg图片
ECImageMessageBody msgBody = new ECImageMessageBody();
// 设置附件名
msgBody.setFileName("Tony_2015.jpg");
// 设置附件扩展名
msgBody.setFileExt("jpg");
// 设置附件本地路径
msgBody.setLocalUrl("..
ECDevice.initial(Context , new ECDevice.InitListener() {
public void onInitialized() {
// SDK完成基本功能的初始化,生成IM聊天、群组功能管理、VoIP以及会议等接口
}
public void onError(Exception exception) {
// SDK 初始化失败,可能有如下原因造成
// 1、可能SDK已经处于初始化状态
// 2、SDK所声明必要的权限未在清单文件(AndroidManifest.xml)里配置、
// 或者未配置服务属性android:exported="false";
// 3、当前手机设备系统版本低于ECSDK所支持的最低版本(当前ECSDK支持
// Android Build.VERSION_CODES.FROYO 以及以上版本)
}
});
标准的登陆代码如下:
public void onInitialized() {
// 设置消息提醒
ECNotifyOptions mOptions = new ECNotifyOptions();
// 设置新消息是否提醒
mOptions.setNewMsgNotify(true);
// 设置状态栏通知图标
mOptions.setIcon(R.drawable.ic_launcher);
// 设置是否启用勿扰模式(不会声音/震动提醒)
mOptions.setSilenceEnable(false);
// 设置勿扰模式时间段(开始小时/开始分钟-结束小时/结束分钟)
// 小时采用24小时制
// 如果设置勿扰模式不启用,则设置勿扰时间段无效
// 当前设置晚上11点到第二天早上8点之间不提醒
mOptions.setSilenceTime(23, 0, 8, 0);
// 设置是否震动提醒(如果处于免打扰模式则设置无效,没有震动)
mOptions.enableShake(true);
// 设置是否声音提醒(如果处于免打扰模式则设置无效,没有声音)
mOptions.enableSound(true);
ECDevice.setNotifyOptions(mOptions);
// 设置SDK注册结果回调通知,当第一次初始化注册成功或者失败会通过该引用回调
// 通知应用SDK注册状态
// 当网络断开导致SDK断开连接或者重连成功也会通过该设置回调
ECDevice.setOnChatReceiveListener(new OnChatReceiveListener());
ECDevice.setOnDeviceConnectListener(new ECDevice.OnECDeviceConnectListener());
// SDK完成基本功能的初始化,生成IM聊天、群组功能管理、VoIP以及会议等接口
ECInitParams initParams = ECInitParams.createParams();
initParams.reset();
initParams.setUserid("$UserId");
initParams.setAppKey("$AppKey");
initParams.setMode("$LoginMode");
// 设置登陆验证模式(是否验证密码/如VoIP方式登陆)
initParams.setAuthType("$AuthType");
initParams.setToken("$AppToken");
// 如果有密码(VoIP密码,对应的登陆验证模式是)
// ECInitParams.LoginAuthType.PASSWORD_AUTH
initParams.setPwd("$Password");
if(!
// 构建群组参数
ECGroup group = new ECGroup();
// 设置群组名称
group.setName("出彩中国人");
// 设置群组公告
group.setDeclare("欢迎体验云通讯群组功能");
// 设置群组类型,如:ECGroup.Scope.TEMP临时群组(100人)
group.setScope(ECGroup.Scope.TEMP);;
// 设置群组验证权限,如:需要身份验证ECGroup.Permission.NEED_AUTH
group.setPermission(ECGroup.Permission.NEED_AUTH);
// 设置群组创建者(可以不设置,服务器默认接口调用者为创建者)
group.setOwner("$Tony的账号");
// 获得SDK群组创建管理类
ECGroupManager groupManager = ECDevice.getECGroupManager();
// 调用创建群组接口,设置创建结果回调
groupManager.createGroup(group, new ECGroupManager.OnCreatGroupListener() {
public void onCreatGroupComplete(ECError error, ECGroup group) {
if(error.errorCode == SdkErrorCode.REQUEST_SUCCESS) {
// 群组创建成功
// 缓存创建的群组到数据库,同时通知UI进行更新
return ;
}
// 群组创建失败
Log.e("ECSDK_Demo" , "create group fail , errorCode="
+ error.errorCode);
}
public void onComplete(ECError error) {
// 不需要处理忽略
}
});ECMeetingManager.ECCreateMeetingParams
// 初始化一个图像绘制控件
ECOpenGlView mGlView = new ECOpenGlView(getContext());
// 远端图像显示(默认)
mGlView.setGlType(ECOpenGlView.RenderType.RENDER_REMOTE);
// 或者本地预览图像
mGlView.setGlType(ECOpenGlView.RenderType.RENDER_PREVIEW);
// 图像等比按照中心区域显示屏截取
mGlView.setAspectMode(ECOpenGlView.AspectMode.CROP);
// 按照图像的分辨率完全填充显示控件,有拉伸效果
mGlView.setAspectMode(ECOpenGlView.AspectMode.FILL);
// 按照图像的宽高等比绘制,会出现有边框效果
mGlView.setAspectMode(ECOpenGlView.AspectMode.FIT);
// 1、呼叫准备工作、设置透传呼叫个人参数信息
ECVoIPSetupManager setupManager = ECDevice.getECVoIPSetupManager();
// 创建一个本地呼叫参数对象
VoIPCallUserInfo mUserInfo = new VoIPCallUserInfo();
mUserInfo.setNickName("$NickName");
mUserInfo.setPhoneNumber("$PhoneNumber");
// 设置当前呼叫透传参数,对方收到VoIP呼叫可以获得该设置信息
setupManager.setVoIPCallUserInfo(mUserInfo);
// 2、设置SDK来电处理
// Note:为了保证能及时收到来电呼叫事件通知、所以应该在在注册SDK参数中加入如下代码传入来电呼叫处理接口
Intent intent = new Intent(Context, "${VoIPCallActivity.class}");
PendingIntent pendingIntent = PendingIntent.getActivity(Context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
ECInitParams.createParams().setPendingIntent(pendingIntent);
// 3、获取SDK VoIP呼叫接口
ECVoIPCallManager callManager = ECDevice.getECVoIPCallManager();
// 设置VoIP呼叫时间回调监听
callManager.setOnVoIPCallListener(new ECVoIPCallManager.OnVoIPListener() {
public void onCallEvents(ECVoIPCallManager.VoIPCall voipCall) {
// 接收VoIP呼叫事件回调
if(voipCall == null) {
Log.e("CallInter" , "handle call event error , voipCall null" );
return ;
}
String callId = voipCall.callId;
switch (voipCall.callState) {
case ECCALL_PROCEEDING:
// 处理呼叫进行中
break;
case ECCALL_ALERTING:
// 处理呼叫对方振铃
break;
case ECCALL_ANSWERED:
// 处理呼叫对方应答,通话开始计时
break;
case ECCALL_FAILED:
// 处理呼叫失败
break;
case ECCALL_RELEASED:
// 处理通话结束,通话完全释放
break;
default:
break;
}
}
});
// 发起VoIP呼叫(音频呼叫,CallType.VIDEO可以发起视频呼叫,CallType.DIRECT发起直拨呼叫)
callManager.makeCall(ECVoIPCallManager.CallType.VOICE , "${JorstinChan}");
Copyright © 2017 All rights reserved.