您的位置:首页 > 编程语言 > Java开发

融云最简洁的实例(eclipse环境下,附源码下载)

2016-04-19 23:30 375 查看
从官网上下了DEMO却总是无法集成,查了好多资料,发现好多人和我遇到同样的情况,我就又耐心地一步一步集成,终于可以跑通了,以下是代码,附源码包供免费下载

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cctvjiaotao.rongyundemo"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 获取机型信息权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />

<!-- 查看 Wi-Fi 状态 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 查看网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<!-- 录音 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- 控制振动器 -->
<uses-permission android:name="android.permission.VIBRATE" />
<!-- 防止设备休眠 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name="com.cctvjiaotao.rongyundemo.APP">

<!-- 主页 -->
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<!-- 会话列表 -->
<activity
android:name=".ConversationListActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="com.cctvjiaotao.rongyundemo"
android:pathPrefix="/conversationlist"
android:scheme="rong"/>
</intent-filter>
</activity>

<!-- 会话 -->
<activity
android:name=".ConversationActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="com.cctvjiaotao.rongyundemo"
android:pathPrefix="/conversation"
android:scheme="rong"/>
</intent-filter>
</activity>

<!-- begin imlib request -->

<service
android:name="io.rong.push.PushService"
android:process="io.rong.push" > <!-- Waring: The name of the push process can't be changed!!! -->
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />

<action android:name="io.rong.push" />
</intent-filter>
</service>
<service
android:name="io.rong.push.CommandService"
android:process="io.rong.push" > <!-- Waring: The name of the push process can't be changed!!! -->
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />

<action android:name="io.rong.command" />
</intent-filter>
</service>

<receiver
android:name="io.rong.push.PushReceiver"
android:process="io.rong.push" > <!-- Waring: The name of the push process can't be changed!!! -->
<intent-filter>
<action android:name="io.rong.imlib.action.push.heartbeat" />
</intent-filter>
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED" />

<data android:scheme="package" />
</intent-filter>
</receiver>

<activity
android:name="io.rong.imkit.tools.SelectPictureActivity"
android:screenOrientation="portrait" />
<activity
android:name="io.rong.imkit.tools.PreviewPictureActivity"
android:screenOrientation="portrait" />
<activity
android:name="io.rong.imkit.tools.RongWebviewActivity"
android:screenOrientation="portrait" />
<activity
android:name="io.rong.imkit.widget.provider.TakingPicturesActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" />

<service
android:name="io.rong.imlib.ipc.RongService"
android:process=":ipc" >
</service>
<service android:name="io.rong.imlib.ReConnectService" />

<receiver android:name="io.rong.imlib.ConnectChangeReceiver" />
<receiver android:name="io.rong.imlib.ipc.PushMessageReceiver" >
<intent-filter>
<action android:name="io.rong.push.message" />
</intent-filter>
</receiver>
<receiver
android:name="io.rong.imlib.HeartbeatReceiver"
android:process=":ipc" />

<meta-data
android:name="RONG_CLOUD_APP_KEY"
android:value="输入你的APP_KEY" />
<!-- end -->
</application>

</manifest>


APP.java

package com.cctvjiaotao.rongyundemo;

import io.rong.imkit.RongIM;
import android.app.Application;

/**
* @作者: jiatao
* @修改时间:2016-4-19 下午9:51:32
* @包名:com.cctvjiaotao.rongyundemo
* @文件名:APP.java
* @版权声明:www.cctvjiatao.com
* @功能: TODO
*/
public class APP extends Application {

@Override
public void onCreate() {
super.onCreate();
RongIM.init(this);
}
}


MainActivity.java

package com.cctvjiaotao.rongyundemo;

import io.rong.imkit.RongIM;
import io.rong.imlib.RongIMClient.ConnectCallback;
import io.rong.imlib.RongIMClient.ErrorCode;
import io.rong.imlib.model.Conversation.ConversationType;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{

private Context context;
private Button btn1, btn2, btn3;
private String token = "你的token";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
setContentView(R.layout.activity_main);
initView();
}

private void initView() {
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn3 = (Button) findViewById(R.id.btn3);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btn1:
conn();
break;
case R.id.btn2:
RongIM.getInstance().startConversationList(context);
break;
case R.id.btn3:
RongIM.getInstance().startConversation(context, ConversationType.PRIVATE, "9527", "Hello");
break;
}
}

private void conn() {
RongIM.connect(token, new ConnectCallback() {

@Override
public void onSuccess(String arg0) {
Toast.makeText(context, "连接成功", 2).show();
}

@Override
public void onError(ErrorCode arg0) {
Toast.makeText(context, "连接失败", 2).show();
}

@Override
public void onTokenIncorrect() {
Toast.makeText(context, "连接onTokenIncorrect", 2).show();
}
});
}

}


activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.cctvjiaotao.rongyundemo.MainActivity" >

<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="连接融云服务器" />

<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="自动列表会话页面" />

<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="自动列表会话页面" />

</LinearLayout>


ConversationListActivity.java

package com.cctvjiaotao.rongyundemo;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

/**
* @作者: jiatao
* @修改时间:2016-4-19 下午9:58:21
* @包名:com.cctvjiaotao.rongyundemo
* @文件名:ConversationListActivity.java
* @版权声明:www.cctvjiatao.com
* @功能: 会话列表
*/
public class ConversationListActivity extends FragmentActivity {

@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.conversation_list);
}
}


conversation_list.xml

<?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:name="io.rong.imkit.fragment.ConversationListFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

</LinearLayout>


ConversationActivity.java

package com.cctvjiaotao.rongyundemo;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

/**
* @作者: jiatao
* @修改时间:2016-4-19 下午10:00:25
* @包名:com.cctvjiaotao.rongyundemo
* @文件名:ConversationActivity.java
* @版权声明:www.cctvjiatao.com
* @功能: 会话页面
*/
public class ConversationActivity extends FragmentActivity {

@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.conversation);
}
}


conversation.xml

<?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:name="io.rong.imkit.fragment.ConversationListFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

</LinearLayout>


本Demo源代码下载地址:http://download.csdn.net/detail/lvyoujt/9407602
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: