Android 即时语音聊天工具 开发

时间:2020-12-26 22:24:45

使用融云SDK

1. 功能需求分析

1.1 核心功能需求:

* 即时通讯

* 文字聊天

* 语音聊天

1.2 辅助功能需求:

* 注册、登录

* 好友添加功能

* 好友关系管理

2. 融云即时通讯平台简介

2.1 平台简介,

* 即时通讯,实时网络 提供商

* 客户端IM组件, 客户端IM基础库, WebSDK,服务端 REST API

2.2 平台架构介绍

Android 即时语音聊天工具 开发

我们需要关心 App, App Server

2.3 概念介绍

* App Key/Secret:  有生产环境 和 开发环境区别

* Token: 每个用户连接服务器都需要一个token

* 会话、会话类型: 会话(单聊,群聊,讨论组)

* 单聊: 用户一对一的聊天

3. 项目结构分析和搭建

3.1 项目结构分析

从融云架构图分析

* App Server 和App交互

* App Server 和 Rong Cloud Server 交互

项目结构

* 服务器端

用户数据库

服务器API程序

* 手机客户端

基本App

融云SDK

3.2 项目框架搭建

xampp 融云Android SDK,下载

下载融云Server SDK: http://www.rongcloud.cn/docs/server.html,获取php.api

Android端

android-async-http开源框架可以是我们轻松的获取网络数据或者向服务器发送数据

https://github.com/loopj/android-async-http

4. 在应用中集成 融云SDK

*  融云SDK 集成

* 融云SDK基本使用

* 聊天窗口

4.1 融云SDK 集成

1. 需要一个融云账户 https://developer.rongcloud.cn/app 注册

2. 创建应用,顺便下载Android SDK

3.

AndroidManifest.xml

<activity
android:name=".ConversationActivity"
android:label="@string/title_activity_conversation" >
<intent-filter >
<action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" />
<data android:host="com.carloz.chart"
android:pathPrefix="conversation"
android:scheme="rong" />
</intent-filter>
</activity>

MainActivity

//在融云网站获取API token
String token = "j8ctNGyFUPsWCSjHcsMj66eF9VgQg6BrGZJW8Onu40r5aeznhPfvdMkaTw3ZBCLTaErEoctk5UQMe69Yjg73wg==";
RongIM.connect(token, new RongIMClient.ConnectCallback() { @Override
public void onSuccess(String arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "Token error", Toast.LENGTH_LONG).show();
} @Override
public void onError(ErrorCode arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "Token success" + arg0, Toast.LENGTH_LONG).show();
} @Override
public void onTokenIncorrect() {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "Token incorrect", Toast.LENGTH_LONG).show();
}
}); startConversationBtn = (Button)findViewById(R.id.startConversationBtn);
startConversationBtn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(RongIM.getInstance() != null){
RongIM.getInstance().startPrivateChat(MainActivity.this, "iceleader", "hello carlo");
}
}
});

App.java

public class App extends Application {

    @Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
// init rongcloud
RongIM.init(this);
}
}

ConversationActivity.java

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

未完待续。。。

http://www.jikexueyuan.com/course/1815_3.html