文档章节

融云之单聊集成

d
 dahuig
发布于 2016/06/15 23:34
字数 737
阅读 79
收藏 1

特此声明 需要去 IMKit 工程里面 AndroidManifest.xml(清单文件)里面填写获取到的 融云AppKey值(这样可以聊天 发照片 语音 不能定位,定位需要自己写) [如有错误,请大家指正]

1.下载sdk IMKit 下载
2.将下载的sdk放入studio File-->Project struucture -->Module 依赖添加工程 3.在继承Application 中初始化 4.连接服务器(需要用到的Activity里面)在API调试里面获取token "NVqYP4aRusKqCD05dS7D1D5DvTAYKzdFvNaBCVbVbd8sfqh0YfEbFmVg1CnkkgkOnhR5PeoOv96HTeICP6532A==" 5.配置会话列表(创建ConversationActivity ) 6.在调用的Activity里面 调用的地方(监听)进行会话调用

//初始化
	public class App extends Application {

@Override
public void onCreate() {

    super.onCreate();

    /**
     * OnCreate 会被多个进程重入,这段保护代码,确保只有您需要使用 RongIM 的进程和 Push 进程执行了 init。
     * io.rong.push 为融云 push 进程名称,不可修改。
     */
    if (getApplicationInfo().packageName.equals(getCurProcessName(getApplicationContext())) ||
            "io.rong.push".equals(getCurProcessName(getApplicationContext()))) {

        /**
         * IMKit SDK调用第一步 初始化
         */
        RongIM.init(this);
    }
}

/**
 * 获得当前进程的名字
 *
 * @param context
 * @return 进程号
 */
public static String getCurProcessName(Context context) {

    int pid = android.os.Process.myPid();

    ActivityManager activityManager = (ActivityManager) context
            .getSystemService(Context.ACTIVITY_SERVICE);

    for (ActivityManager.RunningAppProcessInfo appProcess : activityManager
            .getRunningAppProcesses()) {

        if (appProcess.pid == pid) {
            return appProcess.processName;
        }
    }
    return null;
}

}

关于初始化的注意事项

4.连接服务器(需要用到的Activity里面)

/**
  • 建立与融云服务器的连接
  • @param token */ private void connect(String token) {
if (getApplicationInfo().packageName.equals(App.getCurProcessName(getApplicationContext()))) {

    /**
     * IMKit SDK调用第二步,建立与服务器的连接
     */
    RongIM.connect(token, new RongIMClient.ConnectCallback() {

        /**
         * Token 错误,在线上环境下主要是因为 Token 已经过期,您需要向 App Server 重新请求一个新的 Token
         */
        @Override
        public void onTokenIncorrect() {

            Log.d("LoginActivity", "--onTokenIncorrect");
        }

        /**
         * 连接融云成功
         * @param userid 当前 token
         */
        @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) {

            Log.d("LoginActivity", "--onError" + errorCode);
        }
    });
}

}

5.配置会话列表:(创建ConversationActivity ) public class ConversationActivity extends FragmentActivity {

/**

  • 目标 Id */ private String mTargetId;
/**
 * 刚刚创建完讨论组后获得讨论组的id 为targetIds,需要根据 为targetIds 获取 targetId
 */
private String mTargetIds;

/**
 * 会话类型
 */
private Conversation.ConversationType mConversationType;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.conversation);
}

} 布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">

<fragment
    android:id="@+id/conversation"
    android:name="io.rong.imkit.fragment.ConversationFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>

在清单文件里面进行注册 <!--会话界面--> <activity android:name="io.rong.fast.activity.ConversationActivity" 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="/conversation/"
         android:scheme="rong" />
 </intent-filter>

</activity>

6.在调用的Activity里面 调用的地方(监听)进行会话调用 /** * 启动单聊 * context - 应用上下文。 * targetUserId - 要与之聊天的用户 Id。 * title - 聊天的标题,如果传入空值,则默认显示与之聊天的用户名称。 */
if (RongIM.getInstance() != null) {
RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”);
}

© 著作权归作者所有

共有 人打赏支持
d
粉丝 0
博文 1
码字总数 737
作品 0
济南
【音视频】iOS CallLib 开发指南

开通方式 音视频服务开通,请参考音视频开通方式说明。 使用说明 由于底层引擎技术不同, 之后的音视频 SDK 与 之前的 SDK 中的实时音视频不能互通。 音视频 SDK 为商用收费功能,之前的 SD...

晨会看看
04/24
0
0
【技术分享】如何实现平滑迁移到融云

开发者已使用了第三方云服务,考虑到融云即时通讯云平台系统稳定、产品线丰富、功能高度可控可订制,希望迁移到融云平台,可详细阅读以下迁移方案。 迁移条件 第三方云服务支持并开通服务端消...

horryCC
04/13
0
0
iOS--融云即时通信的使用(推送、聊天和会话列表的头像和昵称)

集成刚说完,这里接直接说使用吧 一、初始化 导入头文件 初始化 连接服务器:融云提供的 方法,需要传入融云的token值,这个token值是在登录自己服务器时,后台所传过来的,同时传过来的数据...

指尖流年
2017/10/28
0
0
iOS开发融云即时通讯集成详细步骤

iOS开发融云即时通讯集成详细步骤 1.融云即时通讯iOS SDK下载地址 http://rongcloud.cn/downloads 选择iOS SDK下载 2.进行应用开发之前,需要先在融云开发者平台创建应用,如果您已经注册了融...

卡奇匠
2016/10/25
23
0
【音视频】Android CallLib 开发指南

开通方式 音视频服务开通,请参考音视频开通方式说明。 使用说明 由于底层引擎技术不同,2.6.0 之后的音视频 SDK 与 2.6.0 之前的 SDK 中的实时音视频不能互通。 音视频 SDK 为商用收费功能,...

晨会看看
04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
6
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
4
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部