环信单聊API
登陆
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| EMChatManager.getInstance().login(userName,password,new EMCallBack(){ @Override public void onSuccess() { runOnUiTread(new Runnable(){ public void run(){ } }); } @Override public void onProgress(int progress,String status) {
} @Override public void onError(int code,String message) { } });
|
注销
1
| EMChatManager.getInstance().login();
|
发送文本消息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| EMConversation conversation = EMChatManager.getInstance().getConversation(username);
EMMessage message = EMMessage.createSendMessage(EMMessage.Type.TXT);
message.setChatType(ChatType.GroupChat);
TextMessageBody txtBody = new TextMessageBody(content); message.addBody(txtBody);
message.setReceipt(username);
conversation.addMessage(message);
EMChatManager.getInstance().sendMessage(message,new EMCallBack());
|
发送语音消息
1 2 3 4 5 6 7 8
| EMConversation conversation = EMChatManager.getInstance().getConversation(username); EMMessage message = EMMessage.createSendMessage(EMMessage.Type.VOICE);
VoiceMessageBody body = new VoiceMessageBody(new File(filePath), len); message.addBody(body); message.setReceipt(username); conversation.addMessage(message); EMChatManager.getInstance().sendMessage(message, new EMCallBack());
|
发送图片消息
1 2 3 4 5 6 7 8 9 10 11
| EMConversation conversation = EMChatManager.getInstance().getConversation(username); EMMessage message = EMMessage.createSendMessage(EMMessage.Type.IMAGE);
message.setChatType(ChatType.GroupChat); ImageMessageBody body = new ImageMessageBody(new File(filePath));
message.addBody(body); message.setReceipt(username); conversation.addMessage(message); EMChatManager.getInstance().sendMessage(message, new EMCallBack());
|
发送地理位置消息
1 2 3 4 5 6 7 8 9
| EMConversation conversation = EMChatManager.getInstance().getConversation(username); EMMessage message = EMMessage.createSendMessage(EMMessage.Type.LOCATION);
message.setChatType(ChatType.GroupChat); LocationMessageBody locBody = new LocationMessageBody(locationAddress, latitude, longitude); message.addBody(locBody); message.setReceipt(username); conversation.addMessage(message); EMChatManager.getInstance().sendMessage(message, new EMCallBack());
|
发送文件消息
1 2 3 4 5 6 7 8 9 10 11 12 13
| EMConversation conversation = EMChatManager.getInstance().getConversation(username);
EMMessage message = EMMessage.createSendMessage(EMMessage.Type.FILE);
if (chatType == CHATTYPE_GROUP) message.setChatType(ChatType.GroupChat);
message.setReceipt(username);
NormalFileMessageBody body = new NormalFileMessageBody(new File(filePath)); message.addBody(body); conversation.addMessage(message); EMChatManager.getInstance().sendMessage(message, new EMCallBack());
|
接收消息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| NewMessageBroadcastReceiver msgReceiver = new NewMessageBroadcastReceiver(); IntentFilter intentFilter = new IntentFilter(EMChatManager.getInstance().getNewMessageBroadcastAction()); intentFilter.setPriority(3); registerReceiver(msgReceiver, intentFilter);
private class NewMessageBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String msgId = intent.getStringExtra("msgid"); String msgFrom = intent.getStringExtra("from"); int msgType = intent.getIntExtra("type", 0); String msgBody = intent.getStringExtra("body"); Log.d("main", "new message id:" + msgId + " from:" + msgFrom + " type:" + msgType + " body:" + msgBody); EMMessage message = EMChatManager.getInstance().getMessage(msgId); } }
|
获取聊天记录
1 2 3 4 5 6 7 8
| EMConversation conversation = EMChatManager.getInstance().getConversation(username);
List<EMMessage> messages = conversation.getAllMessages();
List<EMMessage> messages = conversation.loadMoreMsgFromDB(startMsgId, pagesize);
List<EMMessage> messages = conversation.loadMoreGroupMsgFromDB(startMsgId, pagesize);
|
获取未读消息数量
1 2
| EMConversation conversation = EMChatManager.getInstance().getConversation(username); conversation.getUnreadMsgCount();
|
未读消息清零
1 2
| EMConversation conversation = EMChatManager.getInstance().getConversation(username); conversation.resetUnsetMsgCount();
|
清空会话记录
1 2
| EMChatManager.getInstance().clearConversation(username);
|
删除聊天记录
1 2 3 4 5
| EMChatManager.getInstance().deleteConversation(username);
EMConversation conversation = EMChatManager.getInstance().getConversation(username); conversation.removeMessage(deleteMsg.msgId);
|
设置自定义的消息提示
App在后台时,新消息会通过notification提示,可以把提示的内容换成自定义的内容,在Application中的onCreate()里设置
1 2 3 4 5 6 7 8 9 10 11 12 13
| EMChatOptions options = EMChatManager.getInstance().getChatOptions();
options.setNotifyText(new OnMessageNotifyListener() { @Override public String onNewMessageNotify(EMMessage message){ return message.getFrom() + "发来了一条消息"; } @Override public String onLatestMessageNotify(EMMessage message,int fromUserNum,int messageNum) { return fromUserNum + "个好友发来了" + messgaeNum + "条消息"; } });
|
设置notification点击跳转的intent
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| EMChatOptions options = EMChatManager.getInstance().getChatOptions(); options.setOnNotificationClickListener(new OnNotificationClickListener(){ @Override public Intent onNotificationClick(EMMessage message) { Intent intent = new Intent(applicationContext,ChatActivity.class); ChatType chatType = message.getChatType(); if(chatType == ChatType.chat){ intent.putExtra("userId", message.getFrom()); intent.putExtra("chatType", ChatActivity.CHATTYPE_SINGLE); } else { intent.putExtra("groupId", message.getTo()); intent.putExtra("chatType", ChatActivity.CHATTYPE_GROUP); } return intent; } });
|
好友列表
1
| List<String> usernames = EMChatManager.getInstance().getContactUesrNames();
|
添加好友
1 2
| EMContactManager.getInstance().addContact(toAddUsername, reason);
|
删除好友
1
| EMContactManager.getInstance().deleteContact(username);
|
同意好友请求
1 2
| EMChatManager.getInstance().acceptInvitation(username);
|
拒绝好友请求
1
| EMChatManager.getInstance().refuseInvitation(username);
|
监听好友请求
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| EMContactManager.getInstance().setContactListener(new EMContactListener() { @Override public void onContactAgreed(String username) { } @Override public void onContactRefused(String username) { } @Override public void onContactInvited(String username, String reason) { } @Override public void onContactDeleted(List<String> usernameList) { } @Override public void onContactAdded(List<String> usernameList) { } });
|
获取黑名单
1 2
| EMContactManager.getInstance().getBlackListUsernames();
|
加入黑名单
1 2 3
|
EMContactManager.getInstance().addUserToBlackList(username,true);
|
从黑名单中移除
1
| EMContactManager.getInstance().deleteUserFromBlackList(username);
|
网络异常监听
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| EMChatManager.getInstance().addConnectionListener(new MyConnectionListener());
private class MyConnectionListener implements ConnectionListener{
@Override public void onConnected() { }
@Override public void onDisConnected(String errorString) { if(errorString!=null&&errorString.contains("conflict")) { }else{ } }
@Override public void onReConnected() { }
@Override public void onReConnecting() { }
@Override public void onConnecting(String progress) {
} }
|