文档章节

融云之单聊集成

d
 dahuig
发布于 2016/06/15 23:34
字数 737
阅读 72
收藏 1
点赞 0
评论 0

特此声明 需要去 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

【技术分享】如何实现平滑迁移到融云

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

horryCC ⋅ 04/13 ⋅ 0

iOS开发融云即时通讯集成详细步骤

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

卡奇匠 ⋅ 2016/10/25 ⋅ 0

【音视频】Android CallLib 开发指南

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

晨会看看 ⋅ 04/25 ⋅ 0

融云rongCloud聊天室的使用

融云提供了两种途径的接口, 一个是app端,一个是服务器端的。 app端 1.连接融云,监听消息 这个监听方法是核心了,能够监听各种类型的消息,PRIVATE 单聊,DISCUSSION 讨论组,GROUP 群组,C...

桃子红了呐 ⋅ 01/07 ⋅ 0

【音视频】Android CallKit 开发指南

简介 是融云音视频通话功能的 UI 界面 SDK。包含了单人、多人音视频通话的界面的各种场景和功能。您可以快速的集成 来实现丰富的音视频通话界面,并进行自己的 UI 定制开发。同时我们开源了 ...

晨会看看 ⋅ 04/25 ⋅ 0

干货!融云直播聊天室sdk集成大全

直播聊天室 为方便开发者了解和接入融云直播聊天室,本文将介绍融云直播聊天室功能特点、主要构成及常见功能的解决方案。 产品介绍 融云直播聊天室,是专门为视频直播业务提供的一个产品。主...

程序猿怪 ⋅ 2017/07/25 ⋅ 1

【参与讨论, 赢坚果手机】IM云服务PK,你更看好谁?

【普个及】什么是IM云服务/即时通讯云? 将即时通讯技术封装成SDK供APP开发者下载使用,并向开发者提供平台环境、技术支持以及后期运维等服务,使开发者的APP能够快速获得即时通讯的能力,能...

17youyun ⋅ 2015/09/21 ⋅ 22

融云客户端开发包和演示源码已推送到 Git@OSC

日前,融云平台相关的各种编程语言的开发包已经相应的 Android 和 iOS 平台的演示程序源码已经推送到 Git@OSC 平台,可通过如下地址访问: src="http://git.oschina.net/rongcloud">http://...

oschina ⋅ 2015/02/04 ⋅ 9

thinkphp整合系列之融云即时通讯在线聊天

随着技术的发展;现代的网站;越来越趋于应用形式了; 不再是像以前那样需要用户刷新页面;获取数据了; 服务器端可以主动向用户推送数据;更加及时性了; 比较突出的就是即时通讯在线聊天;...

白俊遥 ⋅ 2016/06/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部