差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 上一修订版 两侧同时换到之后的修订记录 | ||
start:200androidcleintintegration:140hxuidemo [2016/12/20 08:36] zhaoliang |
start:200androidcleintintegration:140hxuidemo [2018/11/06 11:36] jk 移除 |
||
---|---|---|---|
行 57: | 行 57: | ||
见 HXSDKHelper。 | 见 HXSDKHelper。 | ||
- | <sxh java> | + | <code java> |
public synchronized boolean onInit(Context context) { | public synchronized boolean onInit(Context context) { | ||
行 114: | 行 114: | ||
return processName; | return processName; | ||
} | } | ||
- | </sxh> | + | </code> |
==== 注册 ==== | ==== 注册 ==== | ||
行 120: | 行 120: | ||
见 RegisterActivity,注意用户名会自动转为小写字母(强烈建议开发者通过后台调用 REST 接口去注册环信 ID,客户端注册方法不提倡使用)。 | 见 RegisterActivity,注意用户名会自动转为小写字母(强烈建议开发者通过后台调用 REST 接口去注册环信 ID,客户端注册方法不提倡使用)。 | ||
- | <sxh java> | + | <code java> |
new Thread(new Runnable() { | new Thread(new Runnable() { | ||
public void run() { | public void run() { | ||
行 130: | 行 130: | ||
} | } | ||
}).start(); | }).start(); | ||
- | </sxh> | + | </code> |
行 137: | 行 137: | ||
见 LoginActivity(必须在客户端调登录方法)。 | 见 LoginActivity(必须在客户端调登录方法)。 | ||
- | <sxh java> | + | <code java> |
//调用SDK登录方法登录聊天服务器 | //调用SDK登录方法登录聊天服务器 | ||
EMChatManager.getInstance().login(username, password, new EMCallBack() { | EMChatManager.getInstance().login(username, password, new EMCallBack() { | ||
行 156: | 行 156: | ||
} | } | ||
}); | }); | ||
- | </sxh> | + | </code> |
行 165: | 行 165: | ||
注册一个接收消息的 BroadcastReceiver。 | 注册一个接收消息的 BroadcastReceiver。 | ||
- | <sxh java> | + | <code java> |
msgReceiver = new NewMessageBroadcastReceiver(); | msgReceiver = new NewMessageBroadcastReceiver(); | ||
IntentFilter intentFilter = new IntentFilter(EMChatManager.getInstance().getNewMessageBroadcastAction()); | IntentFilter intentFilter = new IntentFilter(EMChatManager.getInstance().getNewMessageBroadcastAction()); | ||
intentFilter.setPriority(3); | intentFilter.setPriority(3); | ||
registerReceiver(msgReceiver, intentFilter); | registerReceiver(msgReceiver, intentFilter); | ||
- | </sxh> | + | </code> |
注册一个 ack 回执消息的 BroadcastReceiver。 | 注册一个 ack 回执消息的 BroadcastReceiver。 | ||
- | <sxh java> | + | <code java> |
IntentFilter ackMessageIntentFilter = new IntentFilter(EMChatManager.getInstance().getAckMessageBroadcastAction()); | IntentFilter ackMessageIntentFilter = new IntentFilter(EMChatManager.getInstance().getAckMessageBroadcastAction()); | ||
ackMessageIntentFilter.setPriority(3); | ackMessageIntentFilter.setPriority(3); | ||
registerReceiver(ackMessageReceiver, ackMessageIntentFilter); | registerReceiver(ackMessageReceiver, ackMessageIntentFilter); | ||
- | </sxh> | + | </code> |
注册一个透传消息的 BroadcastReceiver(透传消息不会存入 db,可以理解为一条不存 db 的,不显示在 UI 的普通消息,或者理解成就是发送的一条指令)。 | 注册一个透传消息的 BroadcastReceiver(透传消息不会存入 db,可以理解为一条不存 db 的,不显示在 UI 的普通消息,或者理解成就是发送的一条指令)。 | ||
- | <sxh java> | + | <code java> |
IntentFilter cmdMessageIntentFilter = new IntentFilter(EMChatManager.getInstance().getCmdMessageBroadcastAction()); | IntentFilter cmdMessageIntentFilter = new IntentFilter(EMChatManager.getInstance().getCmdMessageBroadcastAction()); | ||
cmdMessageIntentFilter.setPriority(3); | cmdMessageIntentFilter.setPriority(3); | ||
registerReceiver(cmdMessageReceiver, cmdMessageIntentFilter); | registerReceiver(cmdMessageReceiver, cmdMessageIntentFilter); | ||
- | </sxh> | + | </code> |
注册一个好友请求同意好友请求等的 BroadcastReceiver。 | 注册一个好友请求同意好友请求等的 BroadcastReceiver。 | ||
- | <sxh java> | + | <code java> |
IntentFilter inviteIntentFilter = new IntentFilter(EMChatManager.getInstance().getContactInviteEventBroadcastAction()); | IntentFilter inviteIntentFilter = new IntentFilter(EMChatManager.getInstance().getContactInviteEventBroadcastAction()); | ||
registerReceiver(contactInviteReceiver, inviteIntentFilter); | registerReceiver(contactInviteReceiver, inviteIntentFilter); | ||
- | </sxh> | + | </code> |
监听联系人的变化等。 | 监听联系人的变化等。 | ||
- | <sxh java> | + | <code java> |
EMContactManager.getInstance().setContactListener(new MyContactListener()); | EMContactManager.getInstance().setContactListener(new MyContactListener()); | ||
- | </sxh> | + | </code> |
注册一个监听连接状态的 listener。 | 注册一个监听连接状态的 listener。 | ||
- | <sxh java> | + | <code java> |
EMChatManager.getInstance().addConnectionListener(new MyConnectionListener()); | EMChatManager.getInstance().addConnectionListener(new MyConnectionListener()); | ||
- | </sxh> | + | </code> |
==== 发送聊天消息并显示 ==== | ==== 发送聊天消息并显示 ==== | ||
- | <sxh java> | + | <code java> |
//创建一个消息(本条信息是一条文本,可以通过EMMessage.Type选择其他类型) | //创建一个消息(本条信息是一条文本,可以通过EMMessage.Type选择其他类型) | ||
EMMessage msg = EMMessage.createSendMessage(EMMessage.Type.TXT); | EMMessage msg = EMMessage.createSendMessage(EMMessage.Type.TXT); | ||
行 229: | 行 229: | ||
e.printStackTrace(); | e.printStackTrace(); | ||
} | } | ||
- | </sxh> | + | </code> |
==== 接收聊天消息并显示 ==== | ==== 接收聊天消息并显示 ==== | ||
- | <sxh java> | + | <code java> |
private class NewMessageBroadcastReceiver extends BroadcastReceiver { | private class NewMessageBroadcastReceiver extends BroadcastReceiver { | ||
@Override | @Override | ||
行 248: | 行 248: | ||
} | } | ||
} | } | ||
- | </sxh> | + | </code> |
消息回执 BroadcastReceiver:见 MainActivity.java。 | 消息回执 BroadcastReceiver:见 MainActivity.java。 | ||
- | <sxh java> | + | <code java> |
private BroadcastReceiver ackMessageReceiver = new BroadcastReceiver() { | private BroadcastReceiver ackMessageReceiver = new BroadcastReceiver() { | ||
行 266: | 行 266: | ||
} | } | ||
}; | }; | ||
- | </sxh> | + | </code> |
透传消息 BroadcastReceiver:见 MainActivity.java。 | 透传消息 BroadcastReceiver:见 MainActivity.java。 | ||
- | <sxh java> | + | <code java> |
private BroadcastReceiver cmdMessageReceiver = new BroadcastReceiver() { | private BroadcastReceiver cmdMessageReceiver = new BroadcastReceiver() { | ||
行 284: | 行 284: | ||
} | } | ||
}; | }; | ||
- | </sxh> | + | </code> |
联系人变化 listener:见 MainActivity.java。 | 联系人变化 listener:见 MainActivity.java。 | ||
- | <sxh java> | + | <code java> |
private class MyContactListener implements EMContactListener{ | private class MyContactListener implements EMContactListener{ | ||
@Override | @Override | ||
行 298: | 行 298: | ||
} | } | ||
} | } | ||
- | </sxh> | + | </code> |
监听连接状态和账号多处登录被迫下线:见 MainActivity.java。 | 监听连接状态和账号多处登录被迫下线:见 MainActivity.java。 | ||
- | <sxh java> | + | <code java> |
private class MyConnectionListener implements EMConnectionListener { | private class MyConnectionListener implements EMConnectionListener { | ||
@Override | @Override | ||
行 325: | 行 325: | ||
} | } | ||
} | } | ||
- | </sxh> | + | </code> |
==== 退出登录 ==== | ==== 退出登录 ==== | ||
- | <sxh java> | + | <code java> |
EMChatManager.getInstance().logout();//此方法为同步方法 | EMChatManager.getInstance().logout();//此方法为同步方法 | ||
+ | </code> | ||
+ | |||
或者 | 或者 | ||
+ | <code java> | ||
EMChatManager.getInstance().logout(new EMCallBack(){})//此方法为异步方法 | EMChatManager.getInstance().logout(new EMCallBack(){})//此方法为异步方法 | ||
//后文中,如遇到new EMCallBack()即为new EMCallBack(){} | //后文中,如遇到new EMCallBack()即为new EMCallBack(){} | ||
- | </sxh> | + | </code> |
---- | ---- |