Android 即时语音聊天工具 开发
使用融云SDK
1. 功能需求分析
1.1 核心功能需求:
* 即时通讯
* 文字聊天
* 语音聊天
1.2 辅助功能需求:
* 注册、登录
* 好友添加功能
* 好友关系管理
2. 融云即时通讯平台简介
2.1 平台简介,
* 即时通讯,实时网络 提供商
* 客户端IM组件, 客户端IM基础库, WebSDK,服务端 REST API
2.2 平台架构介绍
我们需要关心 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