最近在做个项目,需要用到即时通信的功能,选定了环信的IM云来实现,关于环信IM的SDK接口,自己研究了一天,基本的功能实现了一下,这里PO出来demo。
因为只是为了验证sdk的实现,所以界面设计的比较丑,还请谅解。还有,只用到了文本消息,所以选取的sdk版本是2.X。
具体的下载链接见文末。
先上图
首先是一张消息列表,列表中的项目包括用户头像、用户名和最后一条消息显示。
第二张是会话,简单点来写,每一个项的list view的adapter都没有设置,只是简单的显示消息。点击button向对方发送“呵呵呵”的消息。
下面来阐述详细的实现。
step 1: 在manifest文件中添加users-permission 和appkey的service
这里的permission内容可以从环信文档中获取,大致如下
<!-- Required -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
另外的service需要的apply如下,这里选取的是环信提供的默认appkey
<!-- 设置环信应用的appkey -->
<meta-data android:name="EASEMOB_APPKEY" android:value="easemob-demo#chatdemoui" />
<!-- 声明sdk所需的service SDK核心功能-->
<service android:name="com.easemob.chat.EMChatService