融云 SDK 集成详解 – Android Studio
来源:互联网 发布:annie古着香水淘宝 编辑:程序博客网 时间:2024/05/15 11:40
一 、下载 SDK
您可以到融云官方网站下载融云 SDK。融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载。各组件的功能如下:
IMKit – 融云 IM 界面组件IMLib – 融云 IM 通讯能力库CallKit – 融云音视频界面组件CallLib – 融云音视频核心组件LocationLib – 融云位置相关库PushLib – 融云第三方推送库RedPacket – 融云红包相关组件
二、以 Module 形式导入各组件
1、打开你的工程, File -> New -> Import Module
打开你从官网下载的融云 SDK,选择 IMKit 。如图:
根据你的需要,以同样的步骤导入SDK里的其它组件: IMLib, CallKit, CallLib, RedPacket。
2、打开应用的 build.gradle,在 dependencies 中添加 compile project(‘:IMKit’)。如图:
3、将 LocationLib 和 PushLib 里的 jar 包拷贝到你应用的 libs 目录下(如果不需要位置功能和小米推送,可跳过此步骤)。
4、打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为你自己的 key,并将 AndroidManifest 中所有 host 改为你依赖项目的包名(此处指 app Module 的包名)。如图:
三、初始化 SDK
在 application 中调用 RongIM.init(this);
这步比较简单,在 app 的 Module 下创建 一个 App 继承 Application,注意 App 需要 在 AndroidManifest 中配置
public class App extends Application { @Override public void onCreate() { super.onCreate(); /** * 初始化融云 */ RongIM.init(this); } }
四、 连接融云
在 MainActivity 中调用RongIM.connect() 连接融云。注意此处的 Token 为一个测试 Token,你需要换成你自己的 Token,这个 Token 还需要与 RONG_CLOUD_APP_KEY 匹配。
注意,在上线前请确认在 connect 方法 ConnectCallback 中通过 onTokenIncorrect 回调方法实现重新获取 Token 的逻辑。
package rong.io.demo; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import io.rong.imkit.RongIM; import io.rong.imlib.RongIMClient; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String Token = “d6bCQsXiupB/4OyGkh+TOrI6ZiT8q7s0UEaMPWY0lMxmHdi1v/AAJxOma4aYXyaivfPIJjNHdE+FMH9kV/Jrxg==”;//test /** * IMKit SDK调用第二步 * * 建立与服务器的连接 * */ RongIM.connect(Token, new RongIMClient.ConnectCallback() { @Override public void onTokenIncorrect() { //Connect Token 失效的状态处理,需要重新获取 Token } @Override public void onSuccess(String userId) { Log.e(“MainActivity”, “——onSuccess—-” + userId); } @Override public void onError(RongIMClient.ErrorCode errorCode) { Log.e(“MainActivity”, “——onError—-” + errorCode); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } }
五、 集成单聊界面
由于单聊是一个 fragment,需要在 activity 加载的布局中,添加 fragment,并且在 AndroidManifest 中添加 intent-filter
1、 添加一个 Activity,此处命名为 ConversationActivity。
package rong.io.demo; import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.MenuItem; /** * Created by Bob on 2015/4/16. */ public class ConversationActivity extends ActionBarActivity { private static final String TAG = ConversationActivity.class.getSimpleName(); @TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //唯一有用的代码,加载一个 layout setContentView(R.layout.conversation); //继承的是ActionBarActivity,直接调用 自带的 Actionbar,下面是Actionbar 的配置,如果不用可忽略… getSupportActionBar().setTitle(“聊天”); getSupportActionBar().setLogo(R.drawable.de_bar_logo); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeAsUpIndicator(R.drawable.de_actionbar_back); } @Override public boolean onOptionsItemSelected(MenuItem item) { finish(); return super.onOptionsItemSelected(item); }}
2、 查看布局 conversation.xml,如下:
<?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:layout_width=“match_parent” android:layout_height=“match_parent” android:name=“io.rong.imkit.fragment.ConversationFragment”/> </LinearLayout>
3、在 AndroidManifest 注册。注意需修改 host 为自己的包名,其他不需要修改。
<activity android:name=“.ConversationActivity”> <intent-filter> <action android:name=“android.intent.action.VIEW” /> <category android:name=“android.intent.category.DEFAULT” /> <data android:host=“rong.io.demo” android:pathPrefix=“/conversation/” android:scheme=“rong” /> </intent-filter> </activity>
4、在 activity 中调用 RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”); 开启单聊,如下:
package rong.io.demo; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import io.rong.imkit.RongIM; import io.rong.imlib.RongIMClient; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String Token = “d6bCQsXiupB/4OyGkh+TOrI6ZiT8q7s0UEaMPWY0lMxmHdi1v/AAJxOma4aYXyaivfPIJjNHdE+FMH9kV/Jrxg==”;//test /** * IMKit SDK调用第二步 * * 建立与服务器的连接 * */ RongIM.connect(Token, new RongIMClient.ConnectCallback() { @Override public void onSuccess(String userId) { Log.e(“MainActivity”, “——onSuccess—-” + userId); } @Override public void onError(RongIMClient.ErrorCode errorCode) { Log.e(“MainActivity”, “——onError—-” + errorCode); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { /** * 启动单聊 * context - 应用上下文。 * targetUserId - 要与之聊天的用户 Id。 * title - 聊天的标题,如果传入空值,则默认显示与之聊天的用户名称。 */ if (RongIM.getInstance() != null) { RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”); } return super.onOptionsItemSelected(item); }}
到此处 融云 SDK 单聊集成完了。
- 融云 SDK 集成详解 – Android Studio
- 融云 SDK 集成详解 – Android Studio
- android studio 融云SDK集成
- Android Studio集成Facebook SDK
- Android Studio集成信鸽SDK
- 快速集成融云SDK– Android Studio
- 在android studio中集成JPush SDK
- Android Studio集成Facebook SDK Sample
- Android Studio 集成阿里百川SDK
- Android studio 滴滴打车sdk集成
- Android studio如何集成ShareSDK详解
- android studio集成百度地图sdk所遇问题
- android studio SDK 集成 一键分享 第三方登录:
- 在Android Studio 2.2上集成OpenCV4Android SDK
- 友盟集成系列之Android Studio 集成友盟SDK
- Android 融云SDK集成单聊
- Android 集成支付宝SDK实现快捷支付--详解
- Android 集成支付宝SDK实现快捷支付--详解
- linux下mysql忘记密码的通用处理(简单暴力)
- Xcode8.2.1 bundle format unrecognized, invalid, or unsuitable
- ZCMU-1131-致青春
- 在log4j中输出sql
- 分享找到的若比特USB2CAN的驱动程序及相关开源资料
- 融云 SDK 集成详解 – Android Studio
- iOS 第三方键盘多次回调处理
- 用wpa_supplicant wpa_cli连不同加密方式的ap
- Fatal error: Maximum execution time of 30 seconds exceeded in
- git提交时报错 错误信息是 RPC failed; result=22, HTTP code = 411-
- 纯CSS实现文字一行居中,多行左对齐的方法
- HTTP协议浅析(上):简介
- php设计模式之四__观察者模式
- sqlite3移植