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

    最近在写的安卓APP中需要加入用户聊天功能,于是在网上搜了一下第三方的聊天API,发现了两款免费的:极光IM 和爱...

  • 项目接入IMSDK架构设计的一点心得

    我之前待的项目组将具有聊天功能的app改造成即时通讯IMSDK,跟环信,融云这种IMSDK最大的不同就是用户体系由...

  • 一个视频项目引起的总结

    最近一直忙着开发一下直播聊天室的功能,使用的是腾讯IMSDK,聊天功能都还算顺利,但是在实现视频在手机H5播放的时...

  • WebIM sdk简介

    说明:文档简单介绍一下webim sdk的功能以及项目结构。 整体概述 环信imsdk具备完善的即时通讯能力,兼容...

  • node搭建websocket 聊天功能;

    1.安装node。安装依赖2.安装websocket 模块依赖 命令为:npm install nodejs -...

  • 聊天页面滑动UITableView隐藏键盘

    最近有个需求需要做一个聊天功能,界面功能都已经搭建好,开始慢慢的优化用户体验。其中有个最简单的需求:点击输入框--...

  • Django搭建博客2:评论功能

    之前搭建博客,功能结构比较简单,就是简单的文章发布系统。评论功能在搭建博客的基础上稍微进阶一下。我们开始吧。 py...

  • FPGA和ASIC(32讲)

    FPG CPU其实是一些简单的门电路搭建而成、从最简单的门电路、搭建成半加器、全加器, 然后再搭建完整功能的ALU...

  • 融云嵌入简单聊天功能

    1、注册应用,获取appkey 2、集成融云kit和lib,导入第三方库 在 Podfile 文件中添加下面内容,...

  • 记录腾讯IMSDK更新后遇到的一些问题中

    本次项目更新,需要做IMSDK的版本更新,所以将IMSDK和移动直播SDK更新到了V1最高版本,见https://...

网友评论

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

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