android容联云IM初始化介绍及简单登陆修改

2024-08-25 04:32

本文主要是介绍android容联云IM初始化介绍及简单登陆修改,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我本来是先想把full_demo当model导入,然后取里面需要的文件再集成的,事实证明我还是错了。虽然昨天用了一天集成出的效果能够出界面并且不报错,但是效果还是差很多。我还是用full_demo当例子介绍其中的初始化和修改过程吧。

先给个容联云开发文档的链接:http://www.yuntongxun.com/doc/sdk/android/2_3_1_1.html

根据文档的介绍顺序,我先介绍full_demo里面导入的包:

先是上面的.so文件,libBaiduMapSDK应该是百度地图的sdk,liblocSDK应该是跟地理位置有关,聊天当中可以发送地理位置类型的信息,具体我也没有测试过,如果不需要在集成过程中可以删除,具体功能应该实在这:


libvoicechange是变声器库文件,变声器的位置在这:

下面说jar文件,baiduLBS还是跟地理定位有关,glide是用缓存加载图片的,jsoup好像是用来html解析的,locSDK跟地理位置信息有关,下面两个mob和sharesdk的都是和第三方分享有关的,pinyin是跟输入法有关的,umeng是用来消息推送和统计的,image_loader应该是用来加载图片的,感觉和glide重复了,glide加载图片还是不错的。

剩下两个libserphone.so和Yuntx_FullLib_v5.2.1r.jar就是容联云IM需要用到的文件。

下面是配置manifest文件:

需要注意的是uses-permission标签需要配置在application标签外面,activty标签和service、receiver标签需要放在application里面,我做个示例:

    <!-- 允许程序打开网络sockets(必选配置) --><uses-permission android:name="android.permission.INTERNET" /><!-- 允许程序访问有关的网络信息(必选配置) --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 允许程序访问Wi-Fi网络状态信息(必选配置) --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!-- 自定义实现Application --><applicationandroid:name=".ECApplication"android:allowBackup="true"android:hardwareAccelerated="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:largeHeap="true"android:theme="@style/LauncherTheme"><!-- VoIP 呼叫界面 --><activityandroid:name=".ui.voip.VoIPCallActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:launchMode="singleTask"android:screenOrientation="portrait"android:theme="@android:style/Theme.NoTitleBar.Fullscreen"><intent-filter><action android:name="con.yuntongxun.ecdemo.intent.ACTION_VOICE_CALL" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity><serviceandroid:name="com.yuntongxun.ecsdk.ECClientService"android:enabled="true"android:process=":push" />// 以下两项为SDK事件提醒广播(必选配置)<receiverandroid:name="com.yuntongxun.ecsdk.booter.CCPReceivers$AlarmReceiver"android:process=":push" /></application>

大概就是这样。

其它需要注意的是文件依赖:



需要在build.gradle中配置你需要的文件依赖,full_demo里是配置好了的,只有Yuntx_FullLib_v5.2.1r.jar是最重要的,其它的看情况可以去掉,我加了一个butterknife,为了更快速开发,毕竟demo里面都是用的findViewById的方式来找到控件的。

其它要注意的地方也应该没什么了,后面讲一下我修改的地方,
首先是manifest文件:

在这里,我们注释掉了原来的LauncherActivity,改为自己新建一个NewLauncherActivity,放在 .ui.account文件目录下,

NewLauncherActivity的代码如下:

public class NewLauncherActivity extends Activity {@Bind(R.id.btnLogin)Button btnLogin;@Bind(R.id.et_self_id)EditText etSelfId;@Bind(R.id.et_contact_id)EditText etContactId;//登陆id,相当于自己用户名private String selfId;//联系人id,相当于对方用户名private String contactId;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_new_launcher);ButterKnife.bind(this);}//初始化自己登陆信息private void initSelf() {//im登陆String appKey = FileAccessor.getAppKey();String token = FileAccessor.getAppToken();ClientUser clientUser = new ClientUser(selfId);clientUser.setAppKey(appKey);clientUser.setAppToken(token);clientUser.setLoginAuthType(ECInitParams.LoginAuthType.NORMAL_AUTH);clientUser.setPassword("");CCPAppManager.setClientUser(clientUser);//初始化用户自己的信息并把数据放到contact数据库当中SDKCoreHelper.init(ECApplication.getInstance().getApplicationContext(), ECInitParams.LoginMode.FORCE_LOGIN);//初始化SDK}//初始化联系人信息 并把信息传到聊天界面private void initContact() {Intent intent = new Intent(this, ChattingActivity.class);//chattingActivity为图文聊天界面Activityintent.putExtra(ChattingFragment.RECIPIENTS, contactId);//相当于对方用户名intent.putExtra(ChattingFragment.CONTACT_USER, "55555");//相当于对方昵称intent.putExtra(ChattingFragment.CUSTOMER_SERVICE, false);startActivity(intent);//通过intent传值初始化联系人信息}//初始化信息后登陆imprivate void login(){initSelf();initContact();}//登陆按钮的点击事件监听@OnClick(R.id.btnLogin)public void onClick() {selfId = etSelfId.getText().toString().trim();contactId = etContactId.getText().toString().trim();if(selfId.isEmpty()){ToastUtil.showMessage("请输入您自己登陆的id");}else if(contactId.isEmpty()){ToastUtil.showMessage("请输入联系人id");}elselogin();}
}

注释里面已经讲的很清楚了,我就不说什么了,下面看实现后的效果:

这样就可以直接登陆进我们IM聊天界面,并进行图文、语音和视频通话了。

后面我会讲解里面比较重要的Activity和方法的作用,以及界面在哪里修改,怎么修改,demo里面用了很多的自定义控件,确实不太好找到具体的位置,下面提供一下这次源码的下载链接:http://pan.baidu.com/s/1mhGEim8


这篇关于android容联云IM初始化介绍及简单登陆修改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104543

相关文章

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

python修改字符串值的三种方法

《python修改字符串值的三种方法》本文主要介绍了python修改字符串值的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录第一种方法:第二种方法:第三种方法:在python中,字符串对象是不可变类型,所以我们没办法直接

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

Mysql8.0修改配置文件my.ini的坑及解决

《Mysql8.0修改配置文件my.ini的坑及解决》使用记事本直接编辑my.ini文件保存后,可能会导致MySQL无法启动,因为MySQL会以ANSI编码读取该文件,解决方法是使用Notepad++... 目录Myhttp://www.chinasem.cnsql8.0修改配置文件my.ini的坑出现的问题

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO