#1 ? ?登錄的時候報 User is alreay login
#2 ?登錄報錯 200
這個問題,大部分在集成環(huán)信的用戶都會有這個問題拐云,原因這個英文翻譯一下也知道什么意思
環(huán)信文檔給的登錄只提供了登錄的方法
EMClient.getInstance().login(userName,password,newEMCallBack() {//回調(diào)@OverridepublicvoidonSuccess(){
EMClient.getInstance().groupManager().loadAllGroups();
EMClient.getInstance().chatManager().loadAllConversations();
Log.d("main","登錄聊天服務(wù)器成功!");
}@OverridepublicvoidonProgress(intprogress, String status){
}@OverridepublicvoidonError(intcode, String message){
Log.d("main","登錄聊天服務(wù)器失斀叉瘩!");
}
});
在這里要注意“只是登錄的方法”詳細的實現(xiàn)登錄的邏輯是需要自己去實現(xiàn)的
登錄調(diào)用EMClient.getInstance().login(username, password, callback);此方法是一個異步方法,所以需要設(shè)置EMCallback回調(diào)來接收登錄結(jié)果粘捎;注冊調(diào)用EMClient.getInstance().createAccount(username, password);此方法是同步方法薇缅,需要自己創(chuàng)建新線程去調(diào)用,不能放在UI線程直接調(diào)用攒磨;
登錄之前需要去做判斷當(dāng)前是否已經(jīng)有登錄的賬號泳桦,如果有的話值直接跳過登錄,進入您登錄之后跳轉(zhuǎn)的界面娩缰,如果是沒有登錄在去調(diào)用登錄的方法灸撰,很多用戶忽略了這個步驟導(dǎo)致了“User is alreay login”報錯。
登錄和注冊都在LoginActivity類里拼坎,這個方法中對調(diào)用環(huán)信sdk的方法返回錯誤值做了一些判斷浮毯,具體錯誤信息可以參考官方文檔:http://www.easemob.com/apidoc/android/chat3.0/classcom_1_1hyphenate_1_1_e_m_error.html
仔細想一下跟最常用的通訊示例qq和微信是一樣的,你之前登錄過賬號之后泰鸡,沒有去調(diào)用退出债蓝,再次登錄肯定是進入的之前登錄的賬號。而不是直接進入的登錄界面盛龄,不多說饰迹,看代碼:
在環(huán)信demo中的初始化之后有做判斷當(dāng)前知否登錄
有登錄就跳過登錄(即在登錄之前去判斷當(dāng)前是已登錄過芳誓,登錄過就去跳過)
在啟動頁也就是我們經(jīng)常說的廣告頁也是要去判斷