Android 基于环信即时云的IM开发
来源:互联网 发布:网络大专招生 编辑:程序博客网 时间:2024/05/16 14:17
假如我们想要快速实现一个即时通讯功能,最快捷的方法就是借助网络上的即时云服务。下面我们讲述一下如何利用环信实现一个IM功能。
首先下载环信的SDK,也就是几个库,把demo里面的HXSDKHelper.java,HXSDKModel.java,DefaultHXSDKModel.java,HXPreferenceUtils.java四个文件复制到新建的工程下。稍作修改。
首先在Application中实现初始化SDK
public static DemoHXSDKHelper hxSDKHelper = new DemoHXSDKHelper(); @Override public void onCreate() { super.onCreate(); applicationContext = this; instance = this; hxSDKHelper.onInit(applicationContext); }
然后在Activity中登陆
EMChatManager.getInstance().login("123456", "123456", new EMCallBack() { @Override public void onSuccess() { runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub Toast.makeText(context, "登陆成功!", Toast.LENGTH_LONG).show(); } }); }; @Override public void onProgress(int progress, String status) { } @Override public void onError(final int code, final String message) { runOnUiThread(new Runnable() { public void run() { Toast.makeText(getApplicationContext(), "登陆失败" + message, Toast.LENGTH_SHORT).show(); } }); } });
调用函数进行信息的发送
String string = editText3.getText().toString(); EMMessage message = EMMessage.createSendMessage(EMMessage.Type.TXT); String toNum = editText.getText().toString(); if (toNum.equals("1425193776689")) { message.setChatType(ChatType.GroupChat); } TextMessageBody txtBody = new TextMessageBody(string); message.addBody(txtBody); message.setReceipt(toNum); try { EMChatManager.getInstance().sendMessage(message); } catch (EaseMobException e) { // TODO Auto-generated catch block e.printStackTrace(); }
在接收信息时,只需要监听广播就可以
// 注册接收消息广播 receiver = new NewMessageBroadcastReceiver(); IntentFilter intentFilter = new IntentFilter(EMChatManager.getInstance().getNewMessageBroadcastAction()); intentFilter.setPriority(5); registerReceiver(receiver, intentFilter);
private class NewMessageBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 记得把广播给终结掉 abortBroadcast(); String username = intent.getStringExtra("from"); String msgId = intent.getStringExtra("msgid"); // 收到这个广播的时候,message已经在db和内存里了,可以通过id获取mesage对象 final EMMessage message = EMChatManager.getInstance().getMessage(msgId); final TextMessageBody txtBody = (TextMessageBody)message.getBody(); Toast.makeText(getApplicationContext(), "text message from:" + message.getFrom() + " text:" + txtBody.getMessage() + " \n\r", Toast.LENGTH_LONG).show(); runOnUiThread(new Runnable() { @Override public void run() { editText2.setText("from:" + message.getFrom() + "\ntext:" + txtBody.getMessage() + " \n"); } }); } }
这样就可以进行收发。
由于环信的库比较大,编译完之后可执行文件有5M那么大。
2 0
- Android 基于环信即时云的IM开发
- Android 基于环信即时云的IM开发
- Android基于环信SDK开发IM即时聊天
- Android基于环信SDK开发IM即时聊天(一)
- Android基于环信SDK开发IM即时聊天(二)
- #征文再续#Android基于XMPP Smack Openfire开发IM即时聊天(二)
- 基于openfire+smack开发Android即时聊天应用[五]-简易IM客户端效果图
- 【开源OA项目】基于环信IM开发完整的企业通讯解决方案-Dolores
- 基于云信的app聊天(IM)功能模块开发(一)——创建用户
- android接入即时IM
- 环信sdk的module,titanium也可以做IM即时聊天了
- Android平台环信IM开发实战案例
- Android IM即时通信开发总结及代码
- Android-IM即时通讯:环信
- 基于asmack开发的Android开源IM客户端
- android接入即时IM(接入亲加通信云)
- android接入即时IM(接入亲加通信云)
- 融云即时聊天,IM
- 10款GitHub上最火爆的国产开源项目
- LM(Levenberg-Marquard) c语言实现
- IOS中APP开发之路
- 从Tornado到Workbench新一代嵌入式软件集成开发环境
- C++继承public protected private
- Android 基于环信即时云的IM开发
- 使用 sqllite 小结
- view加载初探
- linux下载ftp、http服务器文件的方法以及设置定时任务的方法
- Python对象模型及错误类型
- 读书笔记—基于后缀数组的字符串匹配算法
- 批量将java源文件的GBK转为UTF-8
- 从一个调查来看Node.js发展
- 查看tomcat剩余空间大小;