目录

Android SDK 函数说明

一. Android SDK 介绍

UCPaaS融合通讯平台Android SDK以Java libs的方式提供给Android开发人员,该SDK提供了互联网语音通话、视频通话、实时语音群聊等能力。可以快速便捷帮您的Android应用APP实现语音通话、视频通话,语音会议等功能。

在使用AndroidSDK之前,您可以先体验一下DEMO的功能演示,可以帮助您快速了解SDK提供的相关功能以及相关功能的实现方式。

请点击Demo体验。

1. SDK 通讯类介绍

名称 说明
UCSService 核心通讯类,用于连接云服务平台
UCSCall VoIP电话管理类,用于呼叫请求,挂断,静音等一系统操作

2. SDK 工具类介绍

名称 说明
DevicesAddressTools 获取设备信息工具类
FileTools 文件工具类
PhoneNumberTools 电话号码验证工具类

二. SDK 接口介绍

1. 初始化及配置

1.1. 初始化SDK

原型:- UCSService.init(Context mContext, boolean isSwitch)

功能:初始化SDK ,启动语音,视频等功能

返回:无

备注:必须在调用其他能力接口前调用

参数:

参数名 类型 约束 说明
mContext Context 当前程序上下文
isSwitch Boolean 日志开关

1.2. 添加监听器

原型:- UCSService.addConnectionListener(ConnectionListener connectionListener)

功能:添加TCP连接监听器

返回:无

备注:连接服务成功的监听器

参数:

参数名 类型 约束 说明
connectionListener ConnectionListener 监听接口

1.3. 移除监听器

原型:- UCSService.removeConnectionListener(ConnectionListener cl)

功能:移除监听器接口

返回:无

备注:移除之前添加的监听器

参数:

参数名 类型 约束 说明
cl ConnectionListener 监听接口

1.4. 连接云平台(sid)

原型:- UCSService.connect(String accountSid, String accountToken, String ClientNumber, String ClientPwd)

功能:连接云平台

返回:无

备注:初始化后连接云平台

参数:

参数名 类型 约束 说明
accountSid String 开发者账户
accountToken String 开发者账户密码
ClientNumber String 子账号
ClientPwd String 子账号密码

1.5. 连接云平台(token)

原型:- UCSService.connect(String token)

功能:连接云平台

返回:无

备注:初始化后连接云平台

参数:

参数名 类型 约束 说明
token String 开发者账户密码

1.6. 获取连接云平台状态

原型:- UCSService.isConnected()

功能:判断TCP连接是否成功

返回:true:连接成功;false:连接失败

备注:TCP连接成功后判断 是否TCP连接成功

参数:无

1.7. 连接云平台回调

1.7.0. 连接云平台成功回调

原型:- onConnectionSuccessful()

功能:连接云平台成功回调

返回:无

备注:连接云平台成功后回调此方法

参数:无

1.7.1. 连接云平台失败回调

原型:- onConnectionFailed(UcsReason reason)

功能:连接云平台失败回调

返回:无

备注:连接云平台失败后回调此方法

参数:

参数名 类型 约束 说明
Reason UcsReason 失败返回信息

1.8. 断开云平台连接

原型:- UCSService.uninit()

功能:断开与云平台的连接

返回:无

备注:断开与云平台的连接

参数:无

1.9. 获取SDK版本号

原型:- UCSService.getSDKVersion()

功能:获取SDK 的版本

返回:SDK 版本号

备注:开发者通过此方法获得版本号

参数:无

1.10. 打开/关闭SDK日志

原型:- UCSService.openSdkLog(Context mContext,boolean isOpenSdkLog)

功能:打开或者关闭SDK日志

返回:无

备注:无

参数:

参数名 类型 约束 说明
mContext Context 应用上下文
isOpenSdkLog Boolean 是否开启SDK日志

1.11. 初始化SDK里面广播的action

原型:- UCSService.initAction(Context mContext)

功能:初始化SDK里面广播的action,保证广播的action是唯一的

返回:无

备注:无

参数:

参数名 类型 约束 说明
mContext Context 应用上下文

2. 互联网音频通话能力接口

voip是基于互联网网络进行语音传输的服务,无论客户处于互联网网络还是通讯网络,都可以无缝连接互联网语音的能力接口,支持多个平台(Android 、iOS、 Windows)。

2.1 注册VoIP电话监听器

原型:- UCSCall.addCallStateListener(CallStateListener csl)

功能:注册VoIP电话监听器,监听VoIP电话的各种状态

返回:无

备注:监听用户拨打电话的状态回调

参数:

参数名 类型 约束 说明
csl CallStateListneer 监听器实例

2.2 移除VOIP电话监听器

原型:- UCSCall. removeCallStateListener (CallStateListener csl)

功能:移除VoIP电话监听器,监听VoIP电话的各种状态

返回:无

备注:移除VOIP的电话监听器

参数:

参数名 类型 约束 说明
csl CallStateListneer 监听器实例

2.3 发起呼叫

原型:- UCSCall.dial(Context mContext,CallType callType,String calledNumner,String userdata)

功能:发起呼叫

返回:无

备注:无

参数:

参数名 类型 约束 说明
mContext Context 程序上下文
callType CallType 拨打电话方式VOIP:音频, VIDEO:视频
calledNumber String 被叫手机号码或Client账号
userData String 自定义透传数据(用于需要借助PaaS平台透传数据给AS服务器或者被叫方,最大长度128字节)

2.4 释放通话

原型:- UCSCall.hangUp(Context mContext, String callid)

功能:挂断电话

返回:无

备注:挂断电话,callId一般传空字符串

参数:

参数名 类型 约束 说明
mContext Context 程序上下文
callid String 当前通话id (目前版本为空)

2.5 接听来电

原型:- UCSCall.answer(Context mContext, String callid)

功能:接听电话

返回:无

备注:被叫接听,callid一般传空字符串

参数:

参数名 类型 约束 说明
mContext Context 程序上下文
callid String 当前通话id (目前版本为空)

2.6 发送DTMF

原型:- UCSCall.sendDTMF(Context mContext, int keyCode, EditText call_dtmf)

功能:发送DTMF

返回:无

备注:发送拨打电话数字

参数:

参数名 类型 约束 说明
mContext Context 程序上下文
keyCode int KeyEnvent CODE
call_dtmf EditText 用于显示输入的keyCode值

2.7 设置扬声器状态

原型:- UCSCall.setSpeakerphone(Context mContext,boolean isSpeakerphoneOn)

功能:设置扬声器状态

返回:无

备注:控制扬声器的开关

参数:

参数名 类型 约束 说明
mContext Context 程序上下文
isSpeakerphoneOn Booleanfalse:关闭 true:开启

2.8 获取扬声器状态

原型:- UCSCall.isSpeakerphoneOn(Context mContext)

功能:获取扬声器状态

返回:true:开启 ;false:关闭

备注:获取扬声器状态

参数:

参数名 类型 约束 说明
mContext Context 程序上下文

2.9 设置静音状态

原型:- UCSCall.setMicMute( boolean isMicMute)

功能:设置静音状态

返回:无

备注:设置静音

参数:

参数名 类型 约束 说明
isMicMute boolean true:静音 ;false:正常

2.10 获取静音状态

原型:- UCSCall.isMicMute()

功能:获取静音状态

返回:boolean true:静音 ;false:正常

备注:获取设备的静音状态

参数:无

2.11 播放来电铃声

原型:- UCSCall.startRinging(Context mContext, boolean isVibrator)

功能:播放来电铃声

返回:无

备注:播放来电铃声,这个铃声是系统铃声

参数:

参数名 类型 约束 说明
mContext Context 程序上下文
isVibrator boolean 是否振动

2.12 停止播放来电铃声

原型:- UCSCall.stopRinging(Context mContext)

功能:停止播放来电铃声

返回:无

备注:停止播放来电铃声

参数:

参数名 类型 约束 说明
mContext Context 程序上下文

2.13 播放去电铃声

原型:- UCSCall.startCallRinging(Context mContext,String fileName)

功能:播放去电铃声

返回:无

备注:自己定义铃声文件,这个铃声文件一般放在assets目录下

参数:

参数名 类型 约束 说明
mContext Context 程序上下文
fileName String 音频裸数据文件名称,为PCM格式,放在assets目录下

2.14 停止播放去电铃声

原型:- UCSCall.stopCallRinging(Context mContext)

功能:停止播放去电铃声

返回:无

备注:无

参数:

参数名 类型 约束 说明
mContext Context 程序上下文

2.15 开启录音

原型:- UCSCall.StartRecord(String filePath)

功能:开启录音

返回: 0:成功;-1:失败

备注:此方法在电话接通时设置

参数:

参数名 类型 约束 说明
filePath String 保存录音文件路径

2.16 停止录音

原型:- UCSCall.StopRecord ()

功能:停止录音

返回: 0:成功;-1:失败

备注:此方法在电话挂断时设置

参数:无

3. 互联网音频通话状态回调接口

3.1 呼叫失败回调通知

原型:- onDialFailed (String callid,UcsReason reason)

功能:呼叫失败回调

返回:无

备注:无

参数:

参数名 类型 约束 说明
callid String 当前通话id (目前版本可以为空)
reason UcsReason 呼叫失败的原因

3.2 呼叫被释放回调通知

原型:- onHangUp(String callid,UcsReason reason)

功能:呼叫释放

返回:无

备注:无

参数:

参数名 类型 约束 说明
callid String 当前通话id (目前版本可以为空)
reason UcsReason 呼叫被释放的原因

3.3 被叫振铃回调通知

原型:- onAlerting (String callid)

功能:呼叫振铃

返回:无

备注:无

参数:

参数名 类型 约束 说明
callid String 当前通话id (目前版本可以为空)

3.4 被叫接听回调通知

原型:- onAnswer(String callid)

功能:被叫接听

返回:无

备注:无

参数:

参数名 类型 约束 说明
callid String 当前通话id (目前版本可以为空)

3.5 来电回调通知

原型:- onIncomingCall(String callId, String callType, String callerNumber ,String nickName,String userdata)

功能:来电话时候回调此方法

返回:无

备注:无

参数:

参数名 类型 约束 说明
callid String 返回当前电话id号
callType String 来电类型:0:Voip来电 1:视频来电
callerNumber String 主叫号码
nickName String 显示主叫昵称(未使用时,可不关心)
userdata String 用户透传数据(未使用时,可不关心)

3.6 DTMF回调通知

原型:- public void onDTMF(int dtmfCode)

功能:DTMF回调

返回:无

备注:DTMF回调(*号为10 #号为11)

参数:

参数名 类型 约束 说明
dtmfCode int DTMF回调(*号为10 #号为11)

3.7 单通回调

原型:- public void singlePass(int reason)

功能:单通出现后回调此方法

返回:无

备注:无

参数:

参数名 类型 约束 说明
reason int 单通回调的错误码

3.8 网络状态上报回调

原型:- public void onNetworkState(int reason,String message)

功能:网络状态上报回调此方法

返回:无

备注:无

参数:

参数名 类型 约束 说明
reason int 0无法获取网络状态, 1网络状态极好, 2网络状态良好, 3网络状态一般, 4网络状态极差
message String 描述

4. 互联网视频通话能力接口

4.1 设置视频显示参数

原型:- UCSCall.initCameraConfig(Activity mActivity, LinearLayout remoteLinearLayout, LinearLayout localLinearLayout)

功能:初始化视频设置

返回:无

备注:无

参数:

参数名 类型 约束 说明
mActivity Activity 显示视频界面的activity
remoteLinearLayout LinearLayout 显示对方视频的布局
localLinearLayout LinearLayout 显示本地视频的布局

4.2 用户自定义编解码参数

原型:- UCSCall. setVideoAttr(VideoDecParam videoDecparam,VideoEncParam videoEncParam)

功能:设置用户定义的编解码

返回:无

备注:无

参数:

参数名 类型 约束 说明
videoDecparam VideoDecParam 编码参数
videoEncParam VideoEncParam 解码参数

4.3 刷新摄像头

原型:- UCSCall. refreshCamera(UCSCameraType cameraType, UCSFrameType frameType)

功能:刷新视频显示

返回:无

备注:无

参数:

参数名 类型 约束 说明
cameraType UCSCameraType 刷新摄像头的枚举
frameType UCSFrameType 是否显示边框的枚举

4.4 获取摄像头个数

原型:- UCSCall. getCameraNum()

功能:获取摄像头个数

返回:摄像头个数

备注:无

参数:无

4.5 获取当前摄像头索引

原型:- UCSCall. getCurrentCameraIndex()

功能:获取当前摄像头索引

返回:摄像头索引

备注:无

参数:无

4.6 切换摄像头

原型:- UCSCall. switchCameraDevice(int cameraIndex,RotateType rotateType)

功能:切换摄像头旋转角度

返回:无

备注:无

参数:

参数名 类型 约束 说明
cameraIndex int 摄像头索引
rotateType RotateType 旋转角度

4.7 打开本地/远程摄像头

原型:- UCSCall. openCamera(UCSCameraType camera)

功能:打开本地/远程摄像头

返回:无

备注:无

参数:

参数名 类型 约束 说明
camera UCSCameraType 摄像头类型枚举

4.8 关闭本地/远程摄像头

原型:- UCSCall. closeCamera(UCSCameraType camera)

功能:关闭摄像头

返回:无

备注:停止本地摄像头,把本地界面隐藏但是可以接收数据和发送数据

参数:

参数名 类型 约束 说明
cameraType UCSCameraType 摄像头类型枚举

4.9 视频模式切换

原型:- UCSCall. switchVideoMode(UCSCameraType cameraType)

功能:视频模式切换

返回:无

备注:四种视频模式:本地模式、远程模式、后台模式、正常模式。

参数:

参数名 类型 约束 说明
cameraType UCSCameraType UCSCameraType: 枚举 远程模式、本地模式、后台模式、正常模式

4.10 开启/关闭视频来电预览

原型:- UCSCall. setCameraPreViewStatu(Context mContext,boolean isPreView)

功能:开启/关闭视频来电

返回:无

备注:无

参数:

参数名 类型 约束 说明
mContext Context 上下文
isPreView boolean true:支持 false:不支持

4.11 获取来电时是否支持预览

原型:- UCSCall. isCameraPreviewStatu(Context mContext)

功能:查询是否开启视频来电预览

返回:true:已开启 false:未开启

备注:无

参数:

参数名 类型 约束 说明
mContext Context 上下文

4.12 视频截图

原型:- UCSCall. videoCapture(UCSCameraType isLocal,String filenName,String savePath)

功能:视频截图

返回:无

备注:无

参数:

参数名 类型 约束 说明
isLocal UCSCameraType 摄像头类型枚举
filenName String 预保存的文件名
savePath String 视频文件保存的路径

4.13 视频旋转

原型:- UCSCall. videoSetSendReciveRotation(int send_rotation, int recived_rotation)

功能:视频旋转

返回:无

备注:无

参数:

参数名 类型 约束 说明
send_rotation int 发送的视频旋转角度
recived_rotation int 接收的视频旋转角度

4.14 打开/关闭闪光灯

原型:- UCSCall. setFlashCode(boolean mode)

功能:打开/关闭闪光灯

返回:无

备注:无

参数:

参数名 类型 约束 说明
mode boolean 打开:true关闭:false

4.15 获取闪关灯状态

原型:- UCSCall. getFlashCode()

功能:获取闪关灯状态

返回:ture:已开启 false:已关闭

备注:无

参数:无

5. 互联网视频通话状态回调接口

5.1 远程视频模式回调通知

原型:- public void onRemoteCameraMode (UCSCameraType cameraType)

功能:回调远端视频模式

返回:无

备注:无

参数:

参数名 类型 约束 说明
cameraType UCSCameraType LOCALCAMERA,只开了本地视频;REMOTECAMERA, 只开了远端视频;ALL 双向视频都开启了

5.2 视频截屏回调通知

原型:- public void onCameraCapture (String videoCapFilePath)

功能:视频截屏成功调用

返回:无

备注:无

参数:

参数名 类型 约束 说明
videoCapFilePath String 截屏图片保存的路径

6. 枚举类说明

6.1 CallType 呼叫类型

枚举类,呼叫类型:VOIP(音频),VIEDO(视频)

6.2 ClientType 账户类型

枚举类,两种账户类型:PHONE,CLIENT。

6.3 RotateType 视频旋转类型

枚举类,五种旋转类型:

DEFAULT: 顺时针旋转90度

RETATE_0: 横的90度,头朝x轴负方向

RETATE_90: 顺时针旋转90度

RETATE_180: 顺时针旋转180度

RETATE_270: 顺时针旋转270度

6.4 UCSCameraType 视频类型

枚举类,四种视频类型:

LOCALCAMERA: 本地视频,处于发送状态时候,只发送本地视频流。

REMOTECAMERA: 远程视频,处于接收状态时候,只接收对方的视频流。

BACKGROUNDCAMERA: 后台模式,关闭了接收但是可以发送,一般在刷新摄像头和关闭摄像头方法中使用。

ALL: 全部,既发送也接收视频流。

6.5 UCSFrameType视频边框类型

枚举类,两种边框类型:ORIGINAL,FRAME。

6.6 VideoExternFormat外部视频采集格式类型

枚举类,两种采集格式类型:i420,h264。

7. 注意事项

7.1 视频电话使用流程(代码调用流程)

7.2 SDK所需权限

<uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
<uses-permissionandroid:name="android.permission.VIBRATE"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.WRITE_MEDIA_STORAGE"/>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.CALL_PHONE"/>
<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>
<uses-permissionandroid:name="android.permission.DISABLE_KEYGUARD"/>
<uses-featureandroid:name="android.hardware.camera"/>
<uses-featureandroid:name="android.hardware.camera.autofocus"/>
<uses-permissionandroid:name="android.permission.CAMERA"/>

7.3 配置SDK核心控制器

在AndroidManifest中配置如下核心控制器:

<service android:name="com.yzxtcp.service.YzxIMCoreService" />
<receiver android:name="com.yzxtcp.tools.tcp.receiver.AlarmReceiver"/ >
<receiver android:name="com.yzxtcp.tools.tcp.receiver.MsgBackReceiver" />
<receiver android:name="com.yzx.tools.RtppReceiver" />

7.4 AndroidManifest注意事项:

请勿在AndroidManifest中配置如下属性,否则会导致视频功能不可用:

android:targetSdkVersion

7.5 摄像头操作接口

关于摄像头的操作接口,如前后摄像头切换、摄像头旋转角度等操作,需要在通话建立后,才可以操作。通话结束后的复位操作需要开发者自己完成。

7.6 静音、扬声器、闪光灯等设备操作接口

静音、扬声器、闪光灯等设备操作接口,需要在主叫收到onAlerting回调时或者被叫收到onIncomming回调时进行操作。通话结束后的复位操作需要开发者自己完成。

7.7 视频来电预览操作接口

视频来电预览接口,在进行通话业务前进行配置。配置一次即可,不需要每通电话都配置。

8. 相关对象说明

所属类 函数 说明
UcsReason getReason() 获取当前错误码
UcsReason getMsg() 获取错误码描述
枚举类 枚举值 说明
VideoExternFormat i420 i420文件
VideoExternFormat h264 h264文件