关闭

集成环信实现聊天

标签: 集成环信实现聊天
767人阅读 评论(1) 收藏 举报
分类:

首先,登上环信官网,申请注册,


注册成功之后,登录环信,登录成功之后,找到“我的应用”中的“创建应用”,


点开--“创建应用”,进行填写,(应用名称,产品名称,注册模式······),填写完毕之后,点击----确定。


创建成功之后,会显示一个界面,其中---“应用标识(AppKey)”所对应的值,记下来,后面项目中会用到。


成功之后,可以点击——“IM用户”   注册一个IM用户:填写用户名和密码,用于项目中登录环信。


那么,我们想从网上下载开发包,

https://github.com/easemob/easeui

https://github.com/easemob/sdkdemoapp3.0_android

然后把下载后,开发包中的EaseUI导入到eclipse中

导入之后,我们会发现,他们是依附好的两个项目:

EaseUI和EaseUISimpleDemo

============================================================================================================================

我们创建一个自己的项目MyDemo,并把EaseUI依附到此项目中,依附后,他会报错,

把MyDemo中自动生成的V4包移除,查看EaseUI中的V4包是否能用,如果不能用,则要换一个V4包来用了,如果还报错,如下改正:


找到相应报错的地方把swipeRefreshLayout.setColorSchemeResources改成swipeRefreshLayout.setColorSchemeViewCompat.getX改成new ViewCompat().getX,然后重新 build 即可。


或者,把 v4 包的版本号加大,譬如 compile 'com.android.support:support-v4:23.1.1'。



创建MyApplication,继承Application,并重写oncreat方法,写入一行代码


EMOptions options = new EMOptions();
// 默认添加好友时,是不需要验证的,改成需要验证
options.setAcceptInvitationAlways(false);
...
EaseUI.getInstance().init(applicationContext, options);


然后,不要忘记在清MyApplication进行配置,


<application
        android:name="com.bawei.makingfriends.MyApplication"


并添加一些权限,如下:


<uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />


并在<application></application>节点中,添加一些设置,把你在环信中获得的APPKey值,替代Your Key


 <!-- 设置环信应用的AppKey -->
        <meta-data android:name="EASEMOB_APPKEY"  android:value="Your Key" />
        <!-- 声明SDK所需的service SDK核心功能-->
        <service android:name="com.hyphenate.chat.EMChatService" android:exported="true"/>
        <!-- 声明SDK所需的receiver -->
        <receiver android:name="com.hyphenate.chat.EMMonitorReceiver">
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REMOVED"/>
                <data android:scheme="package"/>
            </intent-filter>
            <!-- 可选filter -->
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>


在MainActivity的布局中,进行布局,当然,你也可以用其他布局


<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
    tools:context=".Base.Email.dialog.MessageActivity">
    
   <FrameLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/fl_message_frame"
       ></FrameLayout>
   
</LinearLayout>



最后在MainActivity中写入如下代码:

 //new出EaseChatFragment或其子类的实例
 EaseChatFragment chatFragment = new EaseChatFragment();
 //传入参数
 Bundle args = new Bundle();
 args.putInt(EaseConstant.EXTRA_CHAT_TYPE, EaseConstant.CHATTYPE_GROUP);
 args.putString(EaseConstant.EXTRA_USER_ID, "zw123");
 chatFragment.setArguments(args);
 getSupportFragmentManager().beginTransaction().add(R.id.container, chatFragment).commit();

最后就可以运行了!!!!!!!!





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2151次
    • 积分:160
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论