Android 融云SDK-即时通讯IM(附源码)

来源:互联网 发布:免费网站源码 编辑:程序博客网 时间:2024/05/18 03:01

前期准备:

注册开发者帐号

开发者在集成融云即时通讯、实时网络能力前,需前往融云官方网站注册创建融云开发者帐号。App Key这个有用,后面代码里我会讲到。

image

下载 SDK

IMKit 集成了会话界面,并且提供了丰富的自定义功能,我们推荐首次接触融云的客户直接使用 IMKit 来快速集成和开发。 
IMLib 提供了基础的通信能力,较轻量,适用于对 UI 有较高订制需求的开发者,但您需要自己去实现大量的界面和功能。 

导入 SDK

以 Module 形式导入刚下载的 IMKit和IMLib。

打开您的工程, File -> New -> Import Module

image

打开您从官网下载的融云 SDK,选择 IMLib。如图:

image

添加配置

打开应用的 build.gradle,在 dependencies 中添加相应模块的依赖。如图:

image

注意:是打开 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>

源码demo:http://download.csdn.net/download/csdn_aiyang/9955969

  欢迎加入QQ群聊,一起探究学习流行技术,骚客们还等什么!
原创粉丝点击