5分钟搭建简单聊天功能 -IMSDK

作者: 亲爱的村姑 | 来源:发表于2016-07-26 17:21 被阅读1774次

    最近在写的安卓APP中需要加入用户聊天功能,于是在网上搜了一下第三方的聊天API,发现了两款免费的:极光IM爱萌IM。还在纠结试用哪款的时候,发现极光IM的API文档怎么都打不开,很开心地从纠结中break了。

    爱萌官网上下了Android SDK和demo。 Demo把核心功能都演示了:单聊,群聊,和客服聊,注册登录,一键登录,等等。不过功能太多不便直接移植到我的项目中。我需要的功能是一键登录(在后台自动为用户注册)和单聊,所以参考demo和API文档,从零开始写。

    搭建环境

    1. 导包
      1.1 将libs包中的 IMSDK_1.3.9.jar包导入libs文件加下
      1.2 在src/main路径下新建jniLibs文件夹,将libs包中的其他包导入
      1.3 将 res包中的内容复制到res文件夹下
      注意,要把anim文件夹中的两个xml放到drawable 文件夹中,不然会报错

    1.2 在build.gradle中的dependencies中加入

    compile files('libs/IMSDK_1.3.9.jar')

    1. 在AndroidManifest.xml中添加权限
    <!-- 允许程序打开网络套接字权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 保持屏幕常亮所需权限 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <!-- 读取手机联系人信息所需权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!-- 向SD卡写入文件所需权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 读取SD卡状态所需权限 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!-- 读取或更改系统设置 所需权限 -->
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <!-- 手机震动所需权限 -->
    <uses-permission android:name="android.permission.VIBRATE" />
    <!-- 创建和删除文件所需权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <!-- 查询网络状态的权限 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 调用系统窗口所需权限 -->
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <!-- 用户定位所需权限 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <!-- 相机的权限 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <!-- 允许程序修改全局音频设置 比如说:存储位置 -->
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <!-- 录制语音权限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    
    1. 获取appKey
      3.1在爱萌官网上注册,登陆
      3.2创建新应用, 填写包名(包名是AndroidManifest.xml中的package name)
      3.3创建好了就可以获得appKey了
      appKey

    编写代码

    1. 初始化SDK
      创建MyApplication类,在onCreate()方法中初始化SDK
    public class MyApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            
           // 初始化IMSDK
          // 在Application类onCreate()方法中,设置applicationContext和appKey
            IMSDK.init(getApplicationContext(),"你的appKey");
        }
    }
    

    记得把AndroidManifest.xml中的application:name改为.MyApplication'

    1. 复制粘贴4个Activity和它需要的资源文件
    单聊用到的4个Activity
    1. 在测试的Activity中编写登陆和启动聊天页面的代码
    
          bt.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    // 系统自动注册imsdk账号
    // 登录成功后,可通过IMMyself.getCustomUserID()、IMMyself.getPassword() 获取登录用户名和密码
                    IMMyself.login(true, 5, new OnActionListener() {
                        @Override
                        public void onSuccess() {
                            Toast.makeText(StartChatActivity.this, "一键登录成功", Toast.LENGTH_SHORT).show();
                            Intent intent = new Intent(StartChatActivity.this, ChatActivity.class);
                            intent.putExtra("CustomUserID", "IMMyself.getCustomUserID()");
                            startActivity(intent);
                        }
    
                        @Override
                        public void onFailure(String s) {
                            if (s.equals("Timeout")) {
                                s = "一键登录超时";
                            } else if (s.equals("Wrong Password")) {
                                s = "密码错误";
                            }
    
                            Toast.makeText(StartChatActivity.this, s, Toast.LENGTH_SHORT).show();
    
                        }
                    }) ;
    

    这样一个简单的聊天功能就实现啦! 不过测试的时候还是出了一些问题,有的手机好像不支持。一登录就闪退。做demo还可以,所以如果想用在实际项目中,还

    相关文章

      网友评论

        本文标题:5分钟搭建简单聊天功能 -IMSDK

        本文链接:https://www.haomeiwen.com/subject/dxdwjttx.html