客服IMSDK文档_第1页
客服IMSDK文档_第2页
客服IMSDK文档_第3页
客服IMSDK文档_第4页
客服IMSDK文档_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、阅读使人充实,会谈使人敏捷,写作使人精确。培根学冋是异常珍贵的东西,从任何源泉吸收都不可耻。阿卜日法拉兹客服 IMSDK文档(Android)准备工作将下列Jar包导入到项目中的libs目录中,若第三方jar包与原来项目中有重复,保证项目 中有一个即可。android-async-http-1.4.6.jar: eventbusjar-上图为第三方jar包,还需导入IM的核心包“:心.:;汀“甘kfimsdk.jar初始化SDKorrrilit?-android4.48jarornn I it?-co re-4.48 .jar| qiniu-android-sdk-T.O.S.jar使用如下代

2、码IMChatMa nager.getl nsta nce().i nit(c on text, userName, userid, imServiceNo, accessId); 其中参数说明:Co ntext con text,应用上下文String user name,用户名String userid,用户 idString imServiceNo,服务号String accessid,接入号完成之后会与服务器建立tcp的连接,设置SDK初始化的接口监听使用如下代码IMChatMa nager.getl nsta nce().set Onln itListe ner(new in itL

3、iste ner() Overridepublic void onin itSuccess() LogUtil.d(MobileApplication, sdk 初始化成功);Overridepublic void onln itFailed() LogUtil.d(MobileApplication, sdk 初始化失败”););该回调接口只是用来判断SDK是否初始化成功了,只有成功了之后才可以使用IM相关功能。消息实体面将消息中的具体属性展示如下:界面显示时会用到消息的一些属性进行不同的显示,public class FromToMessage /* 消息类型:文本*/public sta

4、tic final String MSG_TYPE_TEXT = 0;/* 消息类型:图片*/public static final String MSG_TYPE_IMAGE = 1;/* 消息类型:语音*/public static final String MSG_TYPE_AUDIO = 2;/* 消息的 id, 数据库中的主键*/public String _id;/* 消息从哪里来的 */public String from;/* 消息要通知谁*/public String tonotify;/* 用来标示对话的两人 */public String sessionId;/* 消息的

5、类型*/public String msgType;/* 什么时候发的*/public Long when;/* 消息文本内容,若是多媒体消息时为 URL*/public String message;/* 设备信息*/public String deviceInfo;/* 未读标记( 0 为已读, 1 为未读)*/public String unread;/* 发送成功的状态 (true 说明成功, false 说明失败, sending 说明正在发送中 )*/public String sendState;/* 多媒体消息本地的文件路径*/public String filePath;/*

6、 录音的时间*/public Float recordTime;/* 录音的时间,字符串显示*/public String voiceSecond;/* 是发送者还是接收者,发送者为 0,接收者为 1*/public String userType;/* 消息类型*/public String type;public FromToMessage() 拼装一条消息1. 文本消息:使用如下代码 FromToMessage fromToMessage = IMMessage.createTxtMessage(txt); 参数说明:String txt, 消息文本内容2. 录音消息 : 使用如下代码F

7、romToMessage fromToMessage = IMMessage.createAudioMessage(mTime, filePath);参数说明:float mTime, 录音时长String filePath, 录音在本地的路径3. 图片消息 : 使用如下代码FromToMessage fromToMessage = IMMessage.createImageMessage(picFileFullName);参数说明:String picFileFullName, 图片在本地的路径拼装好的消息在发送时用到。发送消息使用如下代码:IMChat.getInstance().send

8、Message(fromToMessage, new ChatListener() Overridepublic void onSuccess() updateMessage();Overridepublic void onFailed() updateMessage();Overridepublic void onProcess() ); 参数说明: FromToMessage fromToMessage, 要发送的消息 ChatListener ,消息发送的接口监听,发送成功,失败或正在发送,该回调接口中可以直 接进行界面的操作。 上面代码的 updateMessage() 方法为更新界面

9、显示的操作, 发送的消 息存到了本地数据库中,具体可参看提供的 demo 。重发消息当有时候发送失败后,需重新发送该条消息,代码如下:IMChat.getInstance().reSendMessage(fromToMessage, new ChatListener() Override public void onSuccess() Overridepublic void onFailed() Overridepublic void onProcess() );接收新消息需通过注册广播来获取新消息,首先需要一个全局注册的广播,在 AndroidManifest.xml中代码为: intent

10、-filter android:priority示例代码:public class NewMsgReceiver extends BroadcastReceiverprivate NotificationManager notificationManager;Overridepublic void onReceive(Context context, Intent intent) notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); if(inten

11、t.getAction().equals() / 看应用是否在前台if(isAppForground(context) context.sendBroadcast(else Notification notification = new Notification(); notification.icon = ;notification.defaults = Notification.DEFAULT_LIGHTS|Notification.DEFAULT_SOUND; notification.flags |= Notification.FLAG_AUTO_CANCEL; notificatio

12、n.when = System.currentTimeMillis();notification.tickerText = 有新消息来了 ;Intent it = new Intent(context, ChatActivity.class); it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); it.setAction(Intent.ACTION_MAIN); it.addCategory(Intent.CATEGORY_LAUNCHER);PendingIntent contentIntent = PendingIntent.getActivity(co

13、ntext, 1,it, PendingIntent.FLAG_UPDATE_CURRENT); notification.setLatestEventInfo(context, 客服消息 , 新消息 , contentIntent); notificationManager.notify(1, notification); public boolean isAppForground(Context mContext) ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVIC

14、E); List tasks = am.getRunningTasks(1);if (!tasks.isEmpty() ComponentName topActivity = tasks.get(0).topActivity;if (!topActivity.getPackageName().equals(mContext.getPackageName() return false;return true; 这里对应用是否在前台进行了不同处理, 如果在前台则发送一个广播通知聊天界面更新 界面,若在后台则弹出通知栏通知用户。注意当接收到该广播后,消息已经保存到了本 地的数据库中了。具体请查看 demo 中详细代码。获取数据库中的消息在界面上显示消息就得先从数据库中获得消息,代码如下:List fromToMessages = MessageDao.getInstance().getOneMessage(1);参数中的数字为取第几页的数据,用于下拉加载更多消息时使用,默认是一页 15 条消息数据。这样就获

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论