文档章节

融云之单聊集成

d
 dahuig
发布于 2016/06/15 23:34
字数 737
阅读 83
收藏 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
济南
私信 提问
圈友APP

【业务需求】 一、功能需求 在第一版本的基础上进行二次开发,第一版本已经上到appstore和android市场 第二版需求已经确定,有原型图。 1.用户注册登陆 2.用户身份认证 3.创建管理圈子 4.群聊...

圈友APP
2016/12/08
0
0
APP即时通讯技术线下交流会

开源力量上海线下技术沙龙 - APP即时通讯社交技术交流 温馨提示:本活动举办地点IC咖啡,全场饮品免费畅饮哦。 想让你的手机APP快速加入即时通讯功能吗? 快速?! 有多快,3分钟够不够,其实...

Jack
2014/08/26
173
3
【技术分享】如何实现平滑迁移到融云

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

horryCC
04/13
0
0
【音视频】iOS CallLib 开发指南

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

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

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

指尖流年
2017/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mybatis批量操作sql配置

在写批量sql操作时,遇到执行报错: <foreach collection="list" item="item" index="index" separator=";"> update t_xxx set column1=#{item.column1} where id= #{item.id} </foreach> 分......

lar555
10分钟前
0
0
L2TP VPN客户端配置

打开网络设置-->选择VPN-->添加VPN链接 配置完毕,打开更改适配器选项 右键-->属性 选中安全---允许使用安全协议,确定保存后连接vpn即可

阿伦哥-
14分钟前
0
0
缘“熟”而起——《乡土中国》读书笔记3600字

缘“熟”而起——《乡土中国》读书笔记3600字: 发现电脑里藏了几篇本科大一大二写的读书笔记。回想当初阅读这些社会科学书籍的时候,自己尽力又时而深感难以读懂的心境仿佛重现。但如今细想...

原创小博客
17分钟前
0
0
SpringBoot与pageHelper版本问题

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version></parent> <dependency>......

WALK_MAN
21分钟前
1
0
PHP开发支付宝微信个人免签支付接口实例

这是一个PHP开发支付宝微信个人免签支付接口实例,支付宝微信即时到帐接口,使用原生支付宝即时到帐接口修改而来,即可实现多接口收款功能,开发只需要按照支付宝即时到帐接口开发即可,减少...

sucaihuo
26分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部