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支持 // AndroidBuild.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.