{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508942562,"data":{"id":71713798,"title":"9.9.3 登陆聊天服务","slug":"mwhox9","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
\t聊天服务AutoSDK内部对接的钉钉AimSDK,是基于长连接实现的消息接收与发送以及历史消息的拉取,所以在服务初始化以后需要通过登陆操作与AimSDK服务建联。AutoSDK服务端已实现与钉钉IM打通,登陆过程中直接使用高德账号进行与钉钉IM服务建联,需要端上已登录高德账号。
int com.autonavi.gbl.user.chat.ChatService.loginChatRoom();
void com.autonavi.gbl.user.observer.ChatServiceObserver.onAimConnectionStatus(int status);
status取值见AimAuthStatus,其中:
AimAuthStatus.AimAuthStatusAuthed 登录成功
其他错误码如下:
AimAuthStatus.AimAuthStatusAuthing\t正在登录
AimAuthStatus.AimAuthStatusConnected\t已连接
AimAuthStatus.AimAuthStatusConnecting\t正在链接
AimAuthStatus.AimAuthStatusUnConnected\t未连接
AimAuthStatus.AimAuthStatusKickout\t被踢出
void com.autonavi.gbl.user.observer.ChatServiceObserver.onAimEvent(int errCode);
errCode取值见ChatErroCode,其中:
ChatErroCode.ChatErroCodeSuccess\t\t成功
其他错误码如下:
ChatErroCode.ChatErroCodeAimEngineStart\t\tAimEngine启动失败
ChatErroCode.ChatErroCodeCreateAimManager\tAimManager 创建失败
ChatErroCode.ChatErroCodeLoadPreMessage\t加载历史消息失败
ChatErroCode.ChatErroCodeRequestAppUIDFailed\t请求UUID失败
ChatErroCode.ChatErroCodeRequestAuthToken\t请求登陆Token失败
ChatErroCode.ChatErroCodeUpdateAosParam\t更新AOS参数失败
注意:
当接收到这些错误的时候,表示登录过程出现异常,这些错误基本跟网络状态相关,建议HMI在调用loginChatRoom进行网络链接状态的判断后,再进行loginChatRoom的调用过,同时当出现这些错误的时候,进行提示检查网络链接确保网络是通畅的情况下再进行loginChatRoom的调用。
loginChatRoom和logoutChatRoom需要配合使用,不要出现一直调用loginChatRoom却没有调用logoutChatRoom的情况。
\t// 回调Observer\n\tprivate ChatServiceObserver chatServiceObserver = new ChatServiceObserver() {\n // 群聊状态回调\n @Override\n public void onAimEvent(int i) {\n Logger.d(TAG, "onAimEvent", "AimEvent:" + i);\n }\n // 群聊登陆状态\n @Override\n public void onAimConnectionStatus(final int status) {\n Logger.d(TAG, "onAimConnectionStatus", "status:" + status);\n TaskManager.post(new Runnable() {\n @Override\n public void run() {\n if (AimAuthStatus.AimAuthStatusConnected==status||AimAuthStatus.AimAuthStatusAuthed == status) {\n EventBus.getDefault().post(new TeamEvent(AutoConstant.TEAM_SPEAKING,1));\n isLoginChatRoom=true;\n } else {\n isLoginChatRoom=false;\n EventBus.getDefault().post(new TeamEvent(AutoConstant.TEAM_SPEAKING,0));\n }\n }\n });\n }\n };\n\n// 登陆聊天服务\nChatService mChatService = (ChatService) ServiceMgr.getServiceMgrInstance().getBLService(SingleServiceID.ChatSingleServiceID);\nmChatService.loginChatRoom(); \n