zoukankan      html  css  js  c++  java
  • 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

       

       

  • 相关阅读:
    Ch’s gift HDU
    String HDU
    Rikka with String HDU
    DNA repair HDU
    Ring HDU
    A Secret HDU
    看详细的tomcat报错信息
    linux tomcat服务器优化配置
    linux常用命令
    关于Context []startup failed due to previous errors有效解决方式
  • 原文地址:https://www.cnblogs.com/carlo/p/4720359.html
Copyright © 2011-2022 走看看