Android 基于环信即时云的IM开发
来源:互联网 发布:知源中学 李璇 编辑:程序博客网 时间:2024/06/10 19:21
假如我们想要快速实现一个即时通讯功能,最快捷的方法就是借助网络上的即时云服务。下面我们讲述一下如何利用环信实现一个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那么大。
0 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
- 高德提示无本地方法
- OC_id和instancetype介绍
- TBB(Intel Threading Building Blocks)学习笔记
- 键盘相关
- C++primer plus第六版课后编程练习答案2.4
- Android 基于环信即时云的IM开发
- Node.js 安装
- 深入理解dispatch_queue
- 数据仓库、OLAP和数据挖掘的比较分析
- 国外程序员整理的Java资源大全
- android webview js交互
- UITextView - 1
- 网络通信服务器框架
- pyhon中利用publicsuffix获得域名