關於環信即時通訊的使用小結
因專案中涉及即時通訊的模組,老大跟我說用環信的,所以去熟悉了下後搬到專案中使用,環信文件地址點選開啟連結
首先應該在AndroidManifest.xml檔案中配置環信相關
[html] view plain copy print?- <!-- 設定環信應用的appkey -->
- <meta-dataandroid:name="EASEMOB_APPKEY"android:value="easemob-demo#chatdemoui"/>
- <!-- 宣告sdk所需的service SDK核心功能-->
-
<service
- <!-- 百度地圖start -->
- <service
- android:name="com.baidu.location.f"
- android:enabled="true"
- android:process=":remote">
- <intent-filter>
-
<actionandroid:name="com.baidu.location.service_v2.2"
- </action>
- </intent-filter>
- </service>
因為專案中只用到單聊的相關,所以只簡單記錄下重點的
先匯入easemobchat_2.2.1.jar和libeasemob_jni.so、libeasemobservice.so庫檔案
使用前應該在application中初始化
// 初始化環信SDK,一定要先呼叫init()
EMChat.getInstance().init(context);
獲取聊天列表時要加入實時監聽並實現介面EMEventListener
EMChatManager.getInstance().addConnectionListener(connectionListener);
EMContactManager.getInstance().setContactListener(new MyContactListener());
- /**
- * 連線監聽listener
- *
- */
- publicclass MyConnectionListener implements EMConnectionListener {
- @Override
- publicvoid onConnected() {
- boolean contactSynced = HXSDKHelper.getInstance().isContactsSyncedWithServer();
- // in case group and contact were already synced, we supposed to notify sdk we are ready to receive the events
- if( contactSynced){
- new Thread(){
- @Override
- publicvoid run(){
- HXSDKHelper.getInstance().notifyForRecevingEvents();
- }
- }.start();
- }else{
- if(!contactSynced){
- asyncFetchContactsFromServer();
- }
- if(!HXSDKHelper.getInstance().isBlackListSyncedWithServer()){
- asyncFetchBlackListFromServer();
- }
- }
- }
- @Override
- publicvoid onDisconnected(finalint error) {
- // final String st1 = getResources().getString(R.string.can_not_connect_chat_server_connection);
- // final String st2 = getResources().getString(R.string.the_current_network);
- runOnUiThread(new Runnable() {
- @Override
- publicvoid run() {
- if (error == EMError.USER_REMOVED) {
- // 顯示帳號已經被移除
- // showAccountRemovedDialog();
- } elseif (error == EMError.CONNECTION_CONFLICT) {
- // 顯示帳號在其他裝置登陸dialog
- // showConflictDialog();
- } else {
- // if (NetUtils.hasNetwork(MainActivity.this))
- // chatHistoryFragment.errorText.setText(st1);
- // else
- // chatHistoryFragment.errorText.setText(st2);
- }
- }
- });
- }
- }
[html] view plain copy print?
- private InviteMessgeDao inviteMessgeDao;
- private UserDao userDao;
- /***
- * 好友變化listener
- *
- */
- public class MyContactListener implements EMContactListener {
- @Override
- public void onContactAdded(List<String> usernameList) {
- // 儲存增加的聯絡人
- Map<String, User>localUsers = WuerbaApplication.getInstance().getContactList();
- Map<String, User>toAddUsers = new HashMap<String, User>();
- for (String username : usernameList) {
- User user = setUserHead(username);
- // 新增好友時可能會回撥added方法兩次
- if (!localUsers.containsKey(username)) {
- userDao.saveContact(user);
- }
- toAddUsers.put(username, user);
- }
- localUsers.putAll(toAddUsers);
- }
- @Override
- public void onContactDeleted(final List<String> usernameList) {
- // 被刪除
- Map<String, User>localUsers = WuerbaApplication.getInstance().getContactList();
- for (String username : usernameList) {
- localUsers.remove(username);
- userDao.deleteContact(username);
- inviteMessgeDao.deleteMessage(username);
- }
- runOnUiThread(new Runnable() {
- public void run() {
- // 如果正在與此使用者的聊天頁面
- String st10 = getResources().getString(R.string.have_you_removed);
- if (ChatActivity.activityInstance != null
- && usernameList.contains(ChatActivity.activityInstance.getToChatUsername())) {
- Toast.makeText(MainActivity.this, ChatActivity.activityInstance.getToChatUsername() + st10, 1)
- .show();
- ChatActivity.activityInstance.finish();
- }
- updateUnreadLabel();
- // 重新整理ui
- mUserTabTwoFragment.refresh();
- }
- });
- }
- @Override
- public void onContactInvited(String username, String reason) {
- // 接到邀請的訊息,如果不處理(同意或拒絕),掉線後,伺服器會自動再發過來,所以客戶端不需要重複提醒
- List<InviteMessage>msgs = inviteMessgeDao.getMessagesList();
- for (InviteMessage inviteMessage : msgs) {
- if (inviteMessage.getGroupId() == null && inviteMessage.getFrom().equals(username)) {
- inviteMessgeDao.deleteMessage(username);
- }
- }
- // 自己封裝的javabean
- InviteMessage msg = new InviteMessage();
- msg.setFrom(username);
- msg.setTime(System.currentTimeMillis());
- msg.setReason(reason);
- Log.d("onContactInvited", username + "請求加你為好友,reason: " + reason);
- // 設定相應status
- msg.setStatus(InviteMesageStatus.BEINVITEED);
- }
- @Override
- public void onContactAgreed(String username) {
- List<InviteMessage>msgs = inviteMessgeDao.getMessagesList();
- for (InviteMessage inviteMessage : msgs) {
- if (inviteMessage.getFrom().equals(username)) {
- return;
- }
- }
- // 自己封裝的javabean
-
InviteMessage
相關推薦
關於環信即時通訊的使用小結
因專案中涉及即時通訊的模組,老大跟我說用環信的,所以去熟悉了下後搬到專案中使用,環信文件地址點選開啟連結 首先應該在AndroidManifest.xml檔案中配置環信相關 [html] view plain copy print? <!-- 設
Android 使用easeui 3.0 整合環信即時通訊 我踩過的坑
0、關於註冊賬號就不用說了。 1、建立應用、獲取appkey 0、建立應用 1、填寫資訊 2、獲取appkey 2、整合 0、首先新建一個工程 1、這裡主要介紹使用easeui來整合環信的即時通訊功能,需要下載sdk
環信即時通訊sdk使用時遇到的問題及解決
2.解壓後 3.匯入examples的ChatDemoUI3.0,如果沒有關聯類庫easeui 的話要匯入easeui類庫並關聯 執行時會出現以下異常 Error:Execution failed for task ':transformClassesWithJar
環信即時通訊的理解
近來公司要做環信的即時通訊,發現公司想要聊天的功能基本上QQ都有,這樣就顯得有點不怎麼現實:人家作幾年?咱才多少時間?算了,還好環信也做了幾年了。走多遠就看自己在這個功能裡泡多久吸收多少,有點耐心總能把這段路走完。 整合環信有兩種方法, 1 整合環信的SDK,好處是可以用
商城客服功能-------環信即時通訊
empty public class CustomHelper { private static CustomHelper customhelper; private String TAG = "CustomHelper"; private Context appContext; private E
環信即時通訊-伺服器端整合(REST API)-php版demo
} } /* * 註冊IM使用者(授權註冊) */ public function hx_register($username, $password, $nickname) { $url = $this->url . "/users"
環信即時通訊整合過程
最近一直挺忙,使用了一些第三方的東西,也遇見了不少的問題,前面使用的一些還好,比如推送,分享這些第三方都比較容易整合,這次整合環信的即時通訊還是費了一些周折,剛弄完,趕緊記錄一下。 一.前期需要注意的地方 總的來說環信的開發文件和SDK做的已經很簡單了,但是畢竟是第一次整合
網易雲信即時通訊推送保障及網路優化詳解(三):如何在弱網環境下優化大資料傳輸
對於移動 APP 來說,IM 功能正變得越來越重要,它能夠建立起人與人之間的連線。社交類產品中,使用者與使用者之間的溝通可以產生出更好的使用者粘性。在複雜的 Android 生態環境下,多種因素都會造成訊息推送不能及時達到客戶端。另外,不穩定的行動網路也給資料傳輸的速率和可靠
android-使用環信SDK開發即時通訊功能及原始碼下載
最近專案中整合即時聊天功能,挑來揀去,最終選擇環信SDK來進行開發,選擇環信的主要原因是介面方便、簡潔,說明文件清晰易懂。文件有android、ios、和後臺伺服器端,還是非常全的。 環信官網:http://www.easemob.com/ 本篇文章目的主要
03-即時通訊 環信整合
環信 環信是在XMPP的基礎上進行的二次開發環信在網路上傳輸的資料是XML 環信 是否使用過環信,簡單說一下環信的實現原理 環信是一個即時通訊的服務提供商環信使用的是XMPP協議,
VUE專案整合環信WebIM即時通訊以及所遇到的問題
功能背景: 之前和朋友一起做了一個wbe專案整合環信的即時通訊的功能,做的時候感嘆web端文件太少,而且npm包有一些坑,記錄下來寫了這篇部落格,之後不斷有人加我微信問我,怎麼整合.現在我再來重寫一下這篇部落格. 環信web整合功能介紹: 首先:在web端環信是不提供介
iOS 基於環信SDK實現即時通訊-語音、視訊聊天
這裡建立的專案是在文字聊天專案:http://blog.csdn.net/create_pro/article/details/62420040基礎上新增的功能,所以可能需要先去連結文章地址檢視整合過程,具體專案連結在下面,這裡只介紹使用環信SDK整合語音、視訊
即時通訊(環信) bug -"_iconv", referenced from: _avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)
因在開發公司專案有即時通訊模組,經商量之後選擇了第三方即時通訊sdk環信,由於3.0文件還不是非常全面,且本人之前沒有過開發即時通訊的經驗,查閱了很多資料,磕磕絆絆幾天終於完成了對該模組的開發,故
android端使用環信快速在自己的專案中整合即時通訊
因為公司的產品開發需要,需要開發IM,於是打算使用環信進行即時通訊的開發 首先在環信註冊成為開發者,建立應用,得到APPKEY 然後在環信官方下載SDK,SDK中有一個ChatDemo,可以安裝到自己的手機上檢視。 而easeui則需要整合到我們的專案中 因為easeui
5分鐘整合即時通訊功能——環信Android版
下載環信demo (Android) 什麼是環信demo 環信demo展示了怎樣使用環信SDK快速建立一個完整的類微信聊天APP。展示的功能包括:環信SDK初始化,登入,登出,註冊訊息接收listener, 傳送訊息。 環信demo原始碼已在github上開源供開發
環信為自己的app加入即時通訊功能的流程
1. 在環信官網上註冊賬號,建立自己的app,生成app的key 2. 下載環信的SDK開發包,並匯入到自己的app中並在自己的app的AndroidManifest.xml檔案中加入步驟1中的key,並加入許可權 具體程式碼為:
整合環信sdk步驟(即時通訊)
步驟:一,從環信官網註冊獲得appkey(沒有key 無法接入環信伺服器)二, 新增依賴 build.gradle(project)allprojects { repositories { google() jcenter()
Android-IM即時通訊:環信
參考: IM : 即時通訊系統(IM,Instant Messenger)。 Android第三方即時聊天SDK的有:網易雲信、環信和融雲等。 這裡以環信來做即時通訊demo達到兩個效果: 1、使用者登入, 2、使用者間即時通訊 環
Android- 環信IM即時通訊(1)
********************************環境配置************************ 1.拷貝Demo包下的libs包下的baidumapapi_v2_1_1.jareasemobchat_2.1.3.jarlocSDK_3.3.jararmeabi資料夾 2.配置許可權
Android- 環信IM即時通訊_RESTAPI(2)
*****************************************************REST_API 簡介******************************************************* A)REST client:HTT