title: 快速入门
你可以通过以下教程快速了解 IM 的用法。同时,你可以通过 IM Demo 进行体验。
环境准备
- 支持 Android Studio 1.4 以上或者 Eclipse ADT 15.0.0 以上版本
- 支持 JDK 7.0 以上版本
- 支持 Android 手机系统 4.0.3以上版本,即 Android SDK 15 以上版本
1. 创建应用
首先,你需要在控制面板中创建应用。请参考 控制面板-创建应用。
2. 安装 SDK
1.安装 Wilddog IM SDK
你可以直接下载 Android SDK 进行安装。
2.工程配置
Wilddog IM 解决方案在 Android 上需要 android.permission.INTERNET 权限。你需要在 AndroidMainfest.xml 文件添加以下内容: xml 添加内容。
3. 引入SDK
|
4. 集成用户
IM 使用 customToken 的方式来集成开发者的已有用户系统。野狗提供 Server SDK 生成 customToken,开发者需要提供用户的 ID、昵称、头像。流程如下:
- 客户端向开发者服务器请求 customToken。
- 开发者服务器使用野狗 Server SDK 生成 customToken 返回给客户端。
- 客户端使用 customToken 登录 Wilddog IM 服务。
wilddogAuth.addAuthStateListener(new WilddogAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(WilddogAuth wilddogAuth) {
Log.d("result",(wilddogAuth.getCurrentUser()==null)+"");
if(wilddogAuth.getCurrentUser()==null){
// 为空
}else {
//登录成功
Log.d("result",wilddogAuth.getCurrentUser().getUid());
}
}
});
提示:
你可以在 控制面板 - 即时通讯 - 接口测试 中手动生成 Token 用于测试。
5.初始化
调用 WilddogIM.newInstance()
方法初始化 SDK。
WilddogIM wilddogIM = WilddogIM.newInstance();
6. 发起聊天
发送消息前需要先创建会话和消息体。
List<String> ids = new ArrayList<>();
ids.add("uid1");
ids.add("uid2");
ids.add("uid3");
WilddogIM.newConversation(ids, new WilddogIM.CompletionListener() {
@Override
public void onComplete(WilddogIMError error, Conversation wilddogConversation) {
if(error==null){
String messageText = "Hi! How are you";
TextMessage textMessage = Message.newMessage(messageText);
conversation.sendMessage(textMessage, new WildValueCallBack<String>() {
@Override
public void onSuccess(String s) {
Log.d("result","发送成功");
}
@Override
public void onFailed(int code, String des) {
Log.d("result",des);
}
});
}else {
Log.d("result","create conversation failure");
}
}
});
7. 接收消息
在 WilddogIM.WilddogIMMessageListener
的代理方法 onNewMessage()
中接收新消息。
private WilddogIM.WilddogIMMessageListener listener=new WilddogIMClient.WilddogIMMessageListener() {
@Override
public void onNewMessage(List<com.wilddog.wildim.Message> messages) {
for(com.wilddog.wildim.Message wildMessage:messages){
switch (message.getMessageType()) {
case TEXT:
//文本消息
TextMessage textMessage = (TextMessage)message;
case IMAGE:
//图片消息
ImageMessage imageMessage = (ImageMessage)message;
case VOICE:
//语音消息
VoiceMessage voiceMessage = (VoiceMessage)message;
}
}
}
};