Android阿里百川即时通讯开发demo源码下载
程序员文章站
2022-01-22 10:01:37
...
最近做工都名车的App、用到了即时即时通讯的功能、并不是要与QQ、微信争抢什么、只是现在的很多软件在自己的项目中都会用到及时交流不是?我想知道这个该如何实现比较好?
有人告诉我用openfire服务器做及时通讯开发、但是我看这个服务器在后期支持同时在线人数不是很理想、而且很多东西需要自己修改设置、任重道远、要消耗太多时间了、后来又有了解过第三方的环信、这玩意就是感觉服务器实际上并不是太稳定、经常会维护啊之类的、还有融云不知道怎么样
最后还是决定使用阿里的阿里百川、即时通讯功能、这玩意同时支持Windows、Android、iOS、H5,快捷集成所有平台、下面简单的分享一下聊天的Demo、首页看一下聊天的界面
DemoApplication初始化代码
@Override public void onCreate() { super.onCreate(); //todo Application.onCreate中,首先执行这部分代码,以下代码固定在此处,不要改动,这里return是为了退出Application.onCreate!!! if(mustRunFirstInsideApplicationOnCreate()){ //todo 如果在":TCMSSevice"进程中,无需进行openIM和app业务的初始化,以节省内存 return; } //初始化云旺SDK InitHelper.initYWSDK(this); //初始化反馈功能(未使用反馈功能的用户无需调用该初始化) InitHelper.initFeedBack(this); //初始化多媒体SDK,小视频和阅后即焚功能需要使用多媒体SDK AlibabaSDK.asyncInit(this, new InitResultCallback() { @Override public void onSuccess() { Log.e(TAG, "-----initTaeSDK----onSuccess()-------" ); MediaService mediaService = AlibabaSDK.getService(MediaService.class); mediaService.enableHttpDNS(); //果用户为了避免域名劫持,可以启用HttpDNS mediaService.enableLog(); //在调试时,可以打印日志。正式上线前可以关闭 } @Override public void onFailure(int code, String msg) { Log.e(TAG, "-------onFailure----msg:" msg " code:" code); } }); } private boolean mustRunFirstInsideApplicationOnCreate() { //必须的初始化 SysUtil.setApplication(this); sContext = getApplicationContext(); return SysUtil.isTCMSServiceProcess(sContext); }
初始化消息、联系人、群组界面
mIMKit = LoginSampleHelper.getInstance().getIMKit(); if (mIMKit == null) { return; } mConversationService = mIMKit.getConversationService(); initListeners(); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); setContentView(R.layout.demo_fragment_tabs); mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); View indicator = getIndicatorView(TAB_MESSAGE); mTabHost.addTab(mTabHost.newTabSpec(TAB_MESSAGE).setIndicator(indicator), mIMKit.getConversationFragmentClass(), null); indicator = getIndicatorView(TAB_CONTACT); mTabHost.addTab(mTabHost.newTabSpec(TAB_CONTACT).setIndicator(indicator),mIMKit.getContactsFragmentClass(), null); indicator = getIndicatorView(TAB_TRIBE); mTabHost.addTab(mTabHost.newTabSpec(TAB_TRIBE).setIndicator(indicator), TribeFragment.class, null); indicator = getIndicatorView(TAB_MORE); mTabHost.addTab(mTabHost.newTabSpec(TAB_MORE).setIndicator(indicator), MoreFragment.class, null); mUnread = (TextView) findViewById(R.id.unread); mTabHost.setOnTabChangedListener(listener); listener.onTabChanged(TAB_MESSAGE);
登录服务器
//开始登录 String userid = "testpro1"; String password = "taobao1234"; IYWLoginService loginService = mIMKit.getLoginService(); YWLoginParam loginParam = YWLoginParam.createLoginParam(userid, password); loginService.login(loginParam, new IWxCallback() { @Override public void onSuccess(Object... arg0) { } @Override public void onProgress(int arg0) { // TODO Auto-generated method stub } @Override public void onError(int errCode, String description) { //如果登录失败,errCode为错误码,description是错误的具体描述信息 } });
打开客服聊天窗口
//userid是客服帐号,第一个参数是客服帐号,第二个是组ID,如果没有,传0 EServiceContact contact = new EServiceContact("userid", 0); //如果需要发给指定的客服帐号,不需要Server进行分流(默认Server会分流),请调用EServiceContact对象 //的setNeedByPass方法,参数为false。 //contact.setNeedByPass(false); Intent intent = mIMKit.getChattingActivityIntent(contact); startActivity(intent);
阿里百川即时通讯demo代码下载链接: android即时通讯demo 密码: mxss
推荐阅读