欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android阿里百川即时通讯开发demo源码下载

程序员文章站 2022-01-22 10:01:37
...

最近做工都名车的App、用到了即时即时通讯的功能、并不是要与QQ、微信争抢什么、只是现在的很多软件在自己的项目中都会用到及时交流不是?我想知道这个该如何实现比较好?

有人告诉我用openfire服务器做及时通讯开发、但是我看这个服务器在后期支持同时在线人数不是很理想、而且很多东西需要自己修改设置、任重道远、要消耗太多时间了、后来又有了解过第三方的环信、这玩意就是感觉服务器实际上并不是太稳定、经常会维护啊之类的、还有融云不知道怎么样

最后还是决定使用阿里的阿里百川、即时通讯功能、这玩意同时支持Windows、Android、iOS、H5,快捷集成所有平台、下面简单的分享一下聊天的Demo、首页看一下聊天的界面

Android阿里百川即时通讯开发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