Android 融云SDK-即时通讯IM(附源码)
来源:互联网 发布:免费网站源码 编辑:程序博客网 时间:2024/05/18 03:01
前期准备:
注册开发者帐号
开发者在集成融云即时通讯、实时网络能力前,需前往融云官方网站注册创建融云开发者帐号。App Key这个有用,后面代码里我会讲到。
下载 SDK
IMKit 集成了会话界面,并且提供了丰富的自定义功能,我们推荐首次接触融云的客户直接使用 IMKit 来快速集成和开发。IMLib 提供了基础的通信能力,较轻量,适用于对 UI 有较高订制需求的开发者,但您需要自己去实现大量的界面和功能。
导入 SDK
以 Module 形式导入刚下载的 IMKit和IMLib。
打开您的工程, File -> New -> Import Module
打开您从官网下载的融云 SDK,选择 IMLib。如图:
添加配置
打开应用的 build.gradle,在 dependencies 中添加相应模块的依赖。如图:
注意:是打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为您自己的 AppKey. 如图:
<meta-data android:name="RONG_CLOUD_APP_KEY" android:value="您的应用 AppKey" />
初始化
创建一个APP 类继承Application,然后在配置文件指定name属性。在 App 主进程初始化,您只需要实现一句函数实现初始化:
public class App extends Application { @Override public void onCreate() { super.onCreate(); RongIM.init(this); }}
<application android:name=".App" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme">
获取 Token 方法
可以查看官网获取 Token的方法。连接服务器
/** * <p>连接服务器,在整个应用程序全局,只需要调用一次,需在 {@link #init(Context)} 之后调用。</p> * <p>如果调用此接口遇到连接失败,SDK 会自动启动重连机制进行最多10次重连,分别是1, 2, 4, 8, 16, 32, 64, 128, 256, 512秒后。 * 在这之后如果仍没有连接成功,还会在当检测到设备网络状态变化时再次进行重连。</p> * * @param token 从服务端获取的用户身份令牌(Token)。 * @param callback 连接回调。 * @return RongIM 客户端核心类的实例。 */private void connect(String token) { if (getApplicationInfo().packageName.equals(App.getCurProcessName(getApplicationContext()))) { RongIM.connect(token, new RongIMClient.ConnectCallback() { /** * Token 错误。可以从下面两点检查 1. Token 是否过期,如果过期您需要向 App Server 重新请求一个新的 Token * 2. token 对应的 appKey 和工程里设置的 appKey 是否一致 */ @Override public void onTokenIncorrect() { } /** * 连接融云成功 * @param userid 当前 token 对应的用户 id */ @Override public void onSuccess(String userid) { Log.d("LoginActivity", "--onSuccess" + userid); startActivity(new Intent(LoginActivity.this, MainActivity.class)); finish(); } /** * 连接融云失败 * @param errorCode 错误码,可到官网 查看错误码对应的注释 */ @Override public void onError(RongIMClient.ErrorCode errorCode) { } }); }}
配置会话列表
融云 IMKit SDK 使用了 Fragment 作为会话列表和会话界面的组件,其优点是支持各种嵌套方式,更符合您的定制化需求。 下面说明如何在 Activity 里以静态方式加载融云 Fragment.
配置布局文件
这是您的会话列表 Activity 对应的布局文件:conversationlist.xml。注意 android:name 固定为融云的 ConversationListFragment。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:id="@+id/conversationlist" android:name="io.rong.imkit.fragment.ConversationListFragment" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
新建 Activity
public class ConversationListActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.conversationlist); } }
配置 intent-filter:
融云 SDK 是通过隐式调用的方式来实现界面跳转的。因此您需要在 AndroidManifest.xml 中,您的会话列表 Activity 下面配置 intent-filter,其中,android:host 是您应用的包名,需要手动修改,其他请保持不变。
<!--会话列表--><activity android:name="io.rong.fast.activity.ConversationListActivity" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden|adjustResize"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:host="io.rong.fast" android:pathPrefix="/conversationlist" android:scheme="rong" /> </intent-filter></activity>
- Android 融云SDK-即时通讯IM(附源码)
- mui初级入门教程(五)— 聊聊即时通讯(IM),基于环信 web im SDK
- Android IM即时通讯初期调研
- Android-IM即时通讯:环信
- 即时通讯SDK包服务器源代码200行(附源文件)
- android广告SDK原理详解(附源码)
- Android 环信SDK集成 即时通讯IM 一个很LOW的测试Demo
- IceWarp 即时通讯(IM)服务
- IceWarp 即时通讯(IM)服务
- 即时通讯(IM)面试题
- IM即时通讯(四) 文件传输
- 如何从零开始写一个即时通讯软件(附源码)
- IM(即时通讯)
- IM即时通讯
- IM/即时通讯
- 即时通讯IM
- 即时通讯(IM)
- 即时通讯-im
- 用图片替换文本
- Java爬虫入门之Jsoup使用
- Html id 选择器
- 第九课记录 HDFS的高级特性
- 字符串左移或右移,java实现
- Android 融云SDK-即时通讯IM(附源码)
- 【python PDF合并】python 合并同一个文件夹下所有PDF文件
- DES加密与解密(c语言版)
- Android自定义View系列(二)——打造一个仿2K游戏摇杆
- iOS开发 PHAsset获取照片名称
- 【RMQ算法】
- LeetCode题解(Golang实现)--Longest Substring Without Repeating Characters
- 在CentOS下搭建自己的Git服务器
- Java基础学习总结(四)—— 关键字介绍