Android 即時語音聊天工具 開發

使用融雲SDKphp

 

1. 功能需求分析html

1.1 核心功能需求:java

* 即時通信android

* 文字聊天git

* 語音聊天github

1.2 輔助功能需求:數據庫

    * 註冊、登陸api

    * 好友添加功能服務器

    * 好友關係管理網絡

 

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

相關文章
相關標籤/搜索