开发者中心

CLImSdk简版Android接口说明书

产品名称:CLIM SDK 平台:Android
软件包名:CLImsdk_lite_2020201119_android_502 _release 版本:V502

文档编号:15009B1-DD6-1

隐私政策说明

类型 建议方案 处理方
数据说明 隐私政策中说明收集的数据类型、存储目录和使用场景 CP
数据说明 数据类型:音频数据 GT
数据说明 存储目录:应用本身data分区files文件夹,GT服务器存储(时长一个月) GT
数据说明 使用场景:发送录音文件,播放录音文件 GT
数据加密 SDK采集和传输的所有音视频数据已进行Https加密 GT
权限弹框 调用麦克风或摄像头时弹框提示,用户点确认按钮后方可使用 CP
隐私弹框 隐私政策弹框,用户点确认方可使用 CP
隐私条款 在开发平台指定字段和应用内张贴隐私政策 CP

修订历史

日期 版本 说明 作者
2015-04-10 1.0.0 文档 起草 彭孟京
2016-06-30 1.0.2 修改语音识别回调中的一个字段 陈伟文
2016-10-11 1.0.2 初始化增加是否是海外版这个字段 陈伟文
2016-10-11 1.0.2 修改录音接口,修复录音时边录边识别的bug 和添加录音时边录边上传,使用请看录音接口说明 陈伟文
2017-07-24 1.0.3 Demo和文档整理 杨奔
2017-11-13 1.0.4 添加代理功能和文档整理 王胜龙
2020-11-19 502 优化部分功能

1. 概述 ( Overview )

1.1 范围 ( Scope )

此文档适用于对接Android版IM聊天。

1.2 发布 ( Issue )

本文档发布于GtIm技术部、产品部及此项目合作公司相关人员。本文档不属于客户契约性文档,不能发布予客户

1.3 综述 ( Brief )

2. 定义 ( Definition )

2.1 术语 ( Terminologies )

术语 定义
appId 应用编号(需向GT申请获取)

表格 1    术语表

2.2 约束 ( Constraints )

3.运行环境

Android 2.3及以上、真机环境

4.集成指南

4.1 参数准备

1)  向CLIm申请appId,否则使用会失效;

4.2 SDK集成

4.2.1 申请appid

4.2.2 导入jar包和so库

1)  将jar包添加到工程libs目录
2)  添加so库
将armeabi-v7a文件夹里所有的so文件放至工程armeabi-v7a目录下,例如eclipse的so文件目录通常为libs/armeabi-v7a/。
注意:如果应用本身libs目录里还有其他CPU架构的,需要将相应的so文件放到相应的目录.

4.2.3 配置AndroidManifest.xml

1.添加SDK相关权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

4.2.4 添加混淆配置

-keep class com.chuanglan.** { ; }
-keep class com.volley.
* {*;}

5. 接口设计

5.1 注册/移除监听

5.1.1 注册监听

5.1.1.1 注册某个接口监听

1.addLinstener(Integer bCode, MessageEventListener listener)

接口字段 类型 是否必填 说明
bCode Integer 接口标示代码,详见表2
listener MessageEventListener 监听接口

5.1.2 移除监听

5.1.2.1 移除某个接口的监听

removeLinstener(Integer bCode, MessageEventListener listener)

接口字段 类型 是否必填 说明
bCode Integer 接口标示代码,详见表2
listener MessageEventListener 监听接口

5.1.2.2 移除该页面实现监听(使用于退出界面时)

removeLinstener(MessageEventListener listener)

接口字段 类型 是否必填 说明
listener MessageEventListener 监听接口

5.1.2.3 移除所有监听

removeAllListener()

5.1.2.4 代码示例:

//注册登陆授权响应事件
//第一步:注册具体响应监听事件(比如登陆请求,其对应的是登陆响应事件;如果一个请求有多个响应则需要注册添加多个监听)
MessageEventSource.getSingleton().addLinstener(MessageType.IM_THIRD_LOGIN_RESP, this);
//第二步:实现 MessageEventListener (响应事件接口)并实现其方法
              // implements MessageEventListener …
        //handleMessageEvent(MessageEvent event)
 //第三步:在页面销毁或者退出时需要把注册移除掉 释放内存,请调用
代码示例:
          @Override
       protected void onDestroy() {
              super.onDestroy();
              //界面退出时移除该界面的所有监听
              MessageEventSource.getSingleton().removeLinstener(this);
       }

5.1.3 回应监听接口MessageEventListener说明

5.1.3.1 方法说明:

handleMessageEvent(MessageEvent event);
回应MessageEvent结构说明

对象 类型 是否必须返回 说明
bCode int 接口标示代码,对应注册监听时的bcode ;
message RespInfo 接口回应返回数据详见下表

5.1.3.2 回应数据 RespInfo说明

对象 类型 是否必须返回 说明
resultCode int 接口请求结果标示码;0:表示成功;1:表示失败
resultBody Object 接口返回数据对象(各个接口返回的数据不同)

注意:之后接口回应结果只说明RespInfo中的resultBody对象

5.2 初始化

注:游戏初始化时调用此接口 保证后续能够安全使用语音功能;

5.2.1 如需使用代理功能,需在初始化前调用
GTImSdk.getInstance().setProxy(isProxy);

接口字段 类型 是否必须 说明
isProxy Boolean True 打开,false 关闭

5.2.2 调用接口

public boolean init(Context context, String appId, String path,
boolean isTest ,boolean isOversea)

接口字段 类型 是否必须 说明
context Context 上下文
appId String 应用编号(需向云娃申请,统一由云娃分配)
path String 路径,(录音文件存放的路径)
isTest boolean true:访问测试环境;false:访问正式环境;
isOversea Boolean true是海外环境,false为国内环境

5.2.3 无回应

5.2.4 代码示例

//cp 的应用ID ,此ID是申请而来的
              String appId=“300000”;  
      //是否测试环境     
              boolean isTest=true
              // 第一步:初始化获得imsdk 实例  ,一定要先调用init() 
           //是否是海外版本
        boolean isOversea = false;   
 GTImSdk.getInstance().init(this, appId, path, isTest, isOversea);      

6. 登陆与注销

6.1 注销

public void release()
     注:与初始化对应,退出程序时调用此方法。

6.2 登陆

6.2.1 登陆接口

6.2.1.1 调用cp授权登陆 (绑定cp登陆)

绑定登陆是常用的登陆,即将游戏账号和云娃账号 建立账户关系,在聊天的时候显示游戏内的角色信息。
public boolean Binding(String tt,String gameServiceId,List channelList)

协议字段 类型 是否必填 说明
tt String 授权密钥,见下方注释(注:uid nickname不能超过45个字符)
gameServiceID String 服务器标示ID,一般为区服标示
channelList ArrayList 频道标识码列表集合如;X001(世界频道)、X002(公会频道)等,需封装成字符串集合传入;频道最多目前最多支持同时登录10个(注:不支持中文)

注:目前tt  为 {“uid”:“账号”,“nickname”:“昵称”}  该json格式,由游戏/应用账号和游戏角色名称来进行绑定;如有新需求可和GT商定
java代码示例:
String tt=“{“uid”:”“+user2.userID+”“,“nickname”:”“+user2.userName+”“}”;
C#代码示例:
string tt = string.Format(“{{“nickname:”:”{0}“, “uid”:”{1}“}}”, “name54321”, “test”); 

6.2.1.2  回应结果

返回标示码:MessageType.IM_THIRD_LOGIN_RESP
MessageEvent:   (注:message vent的结构都一致,以下省略说明)

对象 类型 是否必须返回 说明
bCode int _bCode=_0x11003
message RespInfo 接口回应返回数据详见下表

回应数据 RespInfo说明

对象 类型 是否必须返回 说明
resultCode int 接口请求结果标示码;0:表示成功返回;1:表示失败返回或未返回
resultBody Bloodthirstiness或者String Bloodthirstiness登陆用户信息

ImThirdLoginResp对象说明

对象字段 类型 是否必须返回 说明
result int 不为0即为失败
describe String 失败时的错误描述
openId long 用户的id
nickName String 用户昵称
iconUrl String 头像地址
thirdUserId String 第三方用户id(登录时传的值,tt中uid)
thirdUserName String 第三方用户昵称(tt中的nickname)

6.2.2 注销登陆接口

6.2.2.1 调用接口

public boolean logout()

6.2.2.2 无回应

6.2.2.3  代码示例

GTImSdk.getInstance().Logout();

6.2.3 重连通知

6.2.3.1 回应结果

回应数据 RespInfo说明

对象 类型 是否必须返回 说明
resultCode int 接口请求结果标示码;0:表示成功;1:表示失败
resultBody ReconnectNotify ReconnectNotify登陆用户信息

ReconnectNotify对象说明:

协议字段 类型 是否必填 说明
userid long 重连用户的yunva id

6.3 语音相关接口

6.3.1 设置录音最大时长

6.3.1.1 调用接口

/**
        * 设置录音最长时长  单位:秒
        * @param times
*openVoume 是否开启录音大小回调  true 开启,false 关闭
        */
public boolean setRecordMaxDuration(int times, boolean openVolume)

6.3.1.2 无回应结果

6.3.2 开始录音

6.3.2.1 调用接口

public boolean startAudioRecord(String filePath, String ext, byte speech)
注意:filepath //录音文件保存路径(.amr), 为空则自动生成 
       ext   //扩展标记    
       speech  //0:为普通录音;1:录音完成上传和识别,停止录音时, 会收到上传                               //回调和识别回调;2:录音完成上传,停止录音时, 会收到上传回调

6.3.2.2 无回应结果

6.3.3 录音时声音大小通知

6.3.3.1 调用接口

调用录音接口后,主动回调

6.3.3.2 回应结果

返回标识码:MessageType.IM_RECORD_VOLUME_NOTIFY
返回RecordVolumeNotify对象说明

协议字段 类型 是否必填 说明
ext String 扩展标识与startAudioRecord中的ext对应
volume int 范围0-100

6.3.4 停止录音

6.3.4.1 调用接口

public boolean stopAudioRecord()

6.3.4.2 回应结果

返回标示码:MessageType .IM_RECORD_STOP_RESP
返回对象ImAudioRecordResp说明

协议字段 类型 是否必填 说明
time int 语音时长
strfilepath String 本地文件路径
ext String 扩展标识

6.3.5 播放语音

6.3.5.1 调用接口

/**
          * 播放录音
          * @param url 
          * @param filePath
          * @param ext 扩展,可用于标志何处触发的播放
          */
public boolean playAudio(String url,String filePath,String ext)

6.3.5.2 回应结果

在播放完成后返回
返回标识码:MessageType.IM_RECORD_FINISHPLAY_RESP
返回对象ImAudioPlayResp说明:

协议字段 类型 是否必填 说明
result int 0为成功,非0失败
describe String 播放失败时的说明
ext String 扩展标识

6.3.6 停止播放语音

6.3.6.1 调用接口

public boolean stopPlayAudio()

6.3.6.2 无回应

6.3.7 设置语音识别语言

6.3.7.1 调用接口

/**
        * type输入语音类型
        *im_speech_zn = 1, //中文
        *im_speech_ct = 2, //粤语
        *Im_speech_en = 3, //英语
         outType 输入语音类型
              im_speechout_simplified = 0, //简体中文
              im_speechout_traditional = 1, //繁体中文
        */
public boolean setSpeech_language(int type, int outType)

6.3.7.2 无回应结果

6.3.8 语音识别(已废弃此接口)

6.3.8.1 调用接口

接口1:
/** 开始语音识别本地语音 */
**public boolean startAudioRecognizeLocalFile(String filePath, String tag);   **此接口调用的返回无url
接口2:
/*开始语音识别本地语音并返回服务器URL/
public boolean startAudioRecognizeAndReturnUrl(String filePath, String tag)
接口3:
/*开始识别网络URL语音/
public boolean startAudioRecognizeUrl(String url, String tag)

6.3.8.2 回应结果

返回标识码MessageType.IM_SPEECH_STOP_RESP
返回ImAudioRecognizeResp对象说明:

协议字段 类型 是否必填 说明
errId int 错误码
errMsg String 错误描述
resultInfo String 识别后的文本
url String 返回url

6.3.9 上传文件

6.3.9.1 调用接口

/**
        * 上传文件
        * @param filePath 图片路径
        * @param fileId  回应时返回
        */
       public boolean uploadFile(String picPath, String fileId)

6.3.9.2 回应结果

返回标识码:MessageType.IM_UPLOAD_FILE_RESP
返回对象ImUploadFileResp说明

协议字段 类型 是否必填 说明
result int 0为成功,非0识别
msg String 非0时的错误描述
fileid String 文件标识
fileurl String 返回url
percent int 上传百分比,100上传完成

6.3.10 下载文件

6.3.10.1 调用接口

/**
        * @param url 下载图片url
        * @param filePath 保存地址
        * @param fileId  文件标识
        */
public boolean downloadFileReq(String url, String filePath, String fileId)

6.3.10.2 回应结果

返回标识码:MessageType.IM_DOWNLOAD_FILE_RESP
返回对象DownloadFileResp说明

协议字段 类型 是否必填 说明
result int 0为成功,非0识别
msg String 非0时的错误描述
filename String 文件名
fileid String 文件标识
percent int 下载百分比,100下载完成

7.文档绑定

文档正标题 CLImSdk简版接口集成Android对接说明书
文档版本 502
文档编号 15009B1-DD6-1
文档主体 DOC
绑定类型 DOC
VSD
PDF

表格 2    文档绑定关系表