# Android app sdk集成说明

相关限制及注意事项

1、Android SDK 新版支持 api17 以上版本,支持竖屏和横屏。

2、开发工具AS建议升级到3.0以上版本

3、Android SDK 目前仅仅支持超链接标签,其他html标签和属性均不识别

4、Android SDK 需要申请存储、麦克风、拍照危险权限,否则部分功能无法使用

智齿客服SDK具有以下特性

  • 在线咨询:咨询人工客服(收发图片、发送视频)、发送表情;
  • 高度自定义UI;

# 1 文档介绍

# 1.1 集成流程示意图

图片

# 1.2.文件说明

SDK包含SobotOnlinesobot_app_sdk_demo、和Doc相关说明文档。

# 2 集成方式

# 2.0 依赖集成

api 'com.sobot.chat:sobot-online:1.0.1'

在build.gradle中如下所示:

dependencies {
      api 'com.sobot.chat:sobot-online:1.0.1'
      implementation 'com.squareup.okhttp3:okhttp:4.4.0'
      implementation 'com.android.support:appcompat-v7:28.0.0'
      implementation 'com.android.support:recyclerview-v7:28.0.0'
      implementation 'com.sobot.chat:sobotsupport-glidev4:1.0.8'
      //目前支持常见的3种图片加载库,必须在下面的图片加载库中选择一个添加依赖
      implementation 'com.github.bumptech.glide:glide:4.8.0'
      //implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
      //implementation 'com.squareup.picasso:picasso:2.5.2'
}

【注意】由于glide v3版本和v4版本的接口完全不同,因此我们为了方便您的使用,采用了特殊的集成方式使sdk可以支持任 意版本的glide。正常情况下,您使用glide 时,直接添加glide依赖和sobot-online的依赖,sdk即 可正常使用。如果报错,那么把glide 升级到4.4.0版本以上即可。

在使用4.9.0以上版本的glide时,需额外升级依赖

"implementation 'com.sobot.chat:sobotsupport-glidev4:1.0.10"

# 2.1 手动集成

下载链接:Android_OnlineSDK_1.0.1

导入Module

解压下载的智齿Android_OnlineSDK_XXX.zip文件,将 SobotOnline 文件直接复制到您的项目中,

然后 Build-->clean projecty一下,之后在build.gradle添加项目依赖

完成上述步骤之后build.gradle中如下所示:

dependencies {
      //sdk 在线客服
      implementation project(":SobotOnline")
      implementation 'com.squareup.okhttp3:okhttp:4.4.0'
      implementation 'com.android.support:appcompat-v7:28.0.0'
      implementation 'com.android.support:recyclerview-v7:28.0.0'
      implementation 'com.sobot.chat:sobotsupport-glidev4:1.0.8'
      //目前支持常见的3种图片加载库,必须在下面的图片加载库中选择一个添加依赖
      implementation 'com.github.bumptech.glide:glide:4.8.0'
      //implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
      //implementation 'com.squareup.picasso:picasso:2.5.2'
}

【注意】由于glide v3版本和v4版本的接口完全不同,因此我们为了方便您的使用,采用了特殊的集成方式使sdk可以支持任 意版本的glide。正常情况下,您使用glide 时,直接添加glide依赖和sobot-online的依赖,sdk即 可正常使用。如果报错,那么把glide 升级到4.4.0版本以上即可。

在使用4.9.0以上版本的glide时,需额外升级依赖

"implementation 'com.sobot.chat:sobotsupport-glidev4:1.0.10"

# 3.1 初始化和域名设置

域名说明:

*默认SaaS平台域名为:https://api.sobot.com

*如果您是腾讯云服务,请设置为:https://ten.sobot.com

*如果您是本地化部署,请使用自己的部署的服务域名


    /**
     * 初始化方法,需要在宿主应用application.onCreate函数中调用
     *
     * @param host  可以为空,默认阿里云服务;如果需要,请设置自己的域名
     */
    SobotOnlineService.initWithHost(Application application, String host);

# 3.2 资源配置

在客户app中colors.xml中添加同名颜色可覆盖智齿sdk中的颜色样式;也可通过在主项目中同一位置放一个同名的图片资源去替换智齿sdk界面中的图片;也可通过在主项目中同一位置放一个同名的文字资源去替换智齿sdk界面中的文字;

以下是常用的颜色配置,更多颜色、图片资源可到手动集成模块中下载源码包中去查找;

    <!--在线客服 主题色 默认绿色 -->
    <color name="sobot_online_color">#0DAEAF</color>
    <!--在线客服 通用头部 背景颜色-->
    <color name="sobot_online_base_header_bg_color">#FFFFFF</color>
    <!-- 状态栏颜色-->
    <color name="sobot_app_status_bar_color">@color/sobot_online_base_header_bg_color</color>

    <!--在线客服 聊天主页面  -->
    <!-- 聊天页状态栏颜色 -->
    <color name="sobot_chat_status_bar_color">#F6F8FC</color>
    <!-- 文件消息气泡颜色 -->
    <color name="sobot_chat_file_bgColor">@color/sobot_online_color</color>
    <!-- 消息气泡左侧背景默认颜色 -->
    <color name="sobot_chat_left_bgColor">@color/sobot_online_white_color</color>
    <!-- 消息气泡右侧背景默认颜色 -->
    <color name="sobot_chat_right_bgColor">@color/sobot_online_color</color>
    <!--文本消息气泡 左侧文字 颜色 -->
    <color name="sobot_left_msg_text_color">@color/sobot_online_common_gray1</color>
    <!--文本消息气泡 右侧文字 颜色 -->
    <color name="sobot_right_msg_text_color">@color/sobot_online_white_color</color>
    <!-- 超链接颜色 左边 -->
    <color name="sobot_color_link">@color/sobot_online_blue_color</color>
    <!-- 超链接颜色 右边 -->
    <color name="sobot_color_rlink">@color/sobot_online_yellow_color</color>
    <!-- 聊天界面提醒背景颜色-->
    <color name="sobot_chat_remind_bg">#59FFFFFF</color>
    <!-- 聊天界面提醒的字体颜色-->
    <color name="sobot_chat_remind_text_color">@color/sobot_online_common_gray3</color>
    <!-- 聊天界面提醒的超链接文字颜色-->
    <color name="sobot_chat_remind_link_color">@color/sobot_online_blue_color</color>

# 3.3 启动页面

【说明:appid, app_key 请联系智齿售后人员获取;如果使用token方式接入,请参考接口文档获取token

方式一:以appid和appkey方式启动

    /**
     * 启动客服认证页面
     *
     * @param context
     * @param appid       公司appid
     * @param appkey      商户appkey
     * @param account     客服账户(邮箱)
     * @param loginStatus 登录状态0:忙碌,1:在线, -1使用默认值
     */
 SobotOnlineService.startAuthWithAcount(Context context, String appid, String appkey, String account, int loginStatus);

方式二:直接以token方式启动

  /**
     * 通过设置token方式启动客服认证页面
     *
     * @param context
     * @param account     客服账户(邮箱)
     * @param loginToken     登录客服token
     * @param loginStatus 1:在线,2:忙碌,-1等待客服设置,0:离线,直接返回
     */
    public static void startAuthWithToken(Context context, String account, String loginToken, int loginStatus) {

# 3.4 接口说明

# 3.4.1登录

 /**
     * 仅登录客服,不执行页面逻辑
     *
     * @param account     客服账户(邮箱)
     * @param loginStatus 登录状态 0:忙碌,1:在线,-1使用默认值
     */
 SobotOnlineService.doLoginWithAccount( Context context, final String account,  int loginStatus);

# 3.4.2退出登录

 SobotOnlineService.outAdmin(Context context;

# 3.4.3获取未读消息数

int unReadNum=SobotOnlineService.getUnReadNumber(Context context);

# 3.4.4 注册广播、获取新收到的信息

注册广播后,当消息通道连通时,可以获取到新接收到的消息。

1 注册广播

/**
* action:SobotSocketConstant.BROADCAST_SOBOT_NEW_MSG
*/
IntentFilter filter = new IntentFilter();
filter.addAction(SobotSocketConstant.BROADCAST_SOBOT_NEW_MSG);
registerReceiver(receiver, filter);

2 接收新信息和未读消息数 在BroadcastReceiver的onReceive方法中接收信息。

//设置广播获取新收到的信息和未读消息数
    class MyReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (SobotSocketConstant.BROADCAST_SOBOT_NEW_MSG.equals(intent.getAction())) {
                //新消息内容
                String content = intent.getStringExtra("msgContent");
                //完整内容json
                String contentJson = intent.getStringExtra("msgContentJson");
                SobotLogUtils.i( " 新消息内容:" + content + "   完整内容:" + contentJson);
            }
        }
    }

# 3.4.5设置是否开启消息提醒

  /**
     * 设置是否开启消息提醒   默认不开启
     *
     * @param context
     * @param flag      true 开启 ; false 关闭
     * @param smallIcon 小图标的id 设置通知栏中的小图片
     */
  SobotOnlineService.setNotificationFlag(Context context, false, R.drawable.sobot_logo_small_icon);

# 4 智齿客服App权限列表

获取权限 获取权限的目的
访问网络 访问网络连接,可能产生GPRS流量
获取网络状态 获取网络信息状态,如当前的网络连接是否有效
获取WiFi状态 获取当前WiFi接入的状态以及WLAN热点的信息
获取错略位置 通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米
获取精确位置 通过GPS芯片接收卫星的定位信息,定位精度达10米以内
改变WiFi状态 改变WiFi状态
写入外部存储 允许程序写入外部存储,如SD卡上写文件
录音 录制声音通过手机或耳机的麦克
修改声音设置 修改声音设置信息
拍照 允许访问摄像头进行拍照
获取任务信息 允许程序获取当前或最近运行的应用
使用振动 允许振动
唤醒锁定 允许程序在手机屏幕关闭后后台进程仍然运行
读取电话状态 访问电话状态
读取联系人 允许应用访问联系人通讯录信息
写入联系人 写入联系人,但不可读取
拨打电话 允许程序从非系统拨号器里输入电话号码
谷歌相册 允许选择谷歌相册图片