UCPaaS融合通讯平台Android SDK以Java libs的方式提供给Android开发人员,该SDK提供了互联网语音通话、视频通话、实时语音群聊等能力。可以快速便捷帮您的Android应用APP实现语音通话、视频通话,语音会议等功能。
在使用AndroidSDK之前,您可以先体验一下DEMO的功能演示,可以帮助您快速了解SDK提供的相关功能以及相关功能的实现方式。
请点击Demo体验。
名称 | 说明 |
---|---|
UCSService | 核心通讯类,用于连接云服务平台 |
UCSCall | VoIP电话管理类,用于呼叫请求,挂断,静音等一系统操作 |
名称 | 说明 |
---|---|
DevicesAddressTools | 获取设备信息工具类 |
FileTools | 文件工具类 |
PhoneNumberTools | 电话号码验证工具类 |
原型:- UCSService.init(Context mContext, boolean isSwitch)
功能:初始化SDK ,启动语音,视频等功能
返回:无
备注:必须在调用其他能力接口前调用
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 当前程序上下文 |
isSwitch | Boolean | 无 | 日志开关 |
原型:- UCSService.addConnectionListener(ConnectionListener connectionListener)
功能:添加TCP连接监听器
返回:无
备注:连接服务成功的监听器
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
connectionListener | ConnectionListener | 无 | 监听接口 |
原型:- UCSService.removeConnectionListener(ConnectionListener cl)
功能:移除监听器接口
返回:无
备注:移除之前添加的监听器
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
cl | ConnectionListener | 无 | 监听接口 |
原型:- UCSService.connect(String accountSid, String accountToken, String ClientNumber, String ClientPwd)
功能:连接云平台
返回:无
备注:初始化后连接云平台
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
accountSid | String | 无 | 开发者账户 |
accountToken | String | 无 | 开发者账户密码 |
ClientNumber | String | 无 | 子账号 |
ClientPwd | String | 无 | 子账号密码 |
原型:- UCSService.connect(String token)
功能:连接云平台
返回:无
备注:初始化后连接云平台
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
token | String | 无 | 开发者账户密码 |
原型:- UCSService.isConnected()
功能:判断TCP连接是否成功
返回:true:连接成功;false:连接失败
备注:TCP连接成功后判断 是否TCP连接成功
参数:无
原型:- onConnectionSuccessful()
功能:连接云平台成功回调
返回:无
备注:连接云平台成功后回调此方法
参数:无
原型:- onConnectionFailed(UcsReason reason)
功能:连接云平台失败回调
返回:无
备注:连接云平台失败后回调此方法
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
Reason | UcsReason | 无 | 失败返回信息 |
原型:- UCSService.uninit()
功能:断开与云平台的连接
返回:无
备注:断开与云平台的连接
参数:无
原型:- UCSService.getSDKVersion()
功能:获取SDK 的版本
返回:SDK 版本号
备注:开发者通过此方法获得版本号
参数:无
原型:- UCSService.openSdkLog(Context mContext,boolean isOpenSdkLog)
功能:打开或者关闭SDK日志
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 应用上下文 |
isOpenSdkLog | Boolean | 无 | 是否开启SDK日志 |
原型:- UCSService.initAction(Context mContext)
功能:初始化SDK里面广播的action,保证广播的action是唯一的
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 应用上下文 |
voip是基于互联网网络进行语音传输的服务,无论客户处于互联网网络还是通讯网络,都可以无缝连接互联网语音的能力接口,支持多个平台(Android 、iOS、 Windows)。
原型:- UCSCall.addCallStateListener(CallStateListener csl)
功能:注册VoIP电话监听器,监听VoIP电话的各种状态
返回:无
备注:监听用户拨打电话的状态回调
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
csl | CallStateListneer | 无 | 监听器实例 |
原型:- UCSCall. removeCallStateListener (CallStateListener csl)
功能:移除VoIP电话监听器,监听VoIP电话的各种状态
返回:无
备注:移除VOIP的电话监听器
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
csl | CallStateListneer | 无 | 监听器实例 |
原型:- UCSCall.dial(Context mContext,CallType callType,String calledNumner,String userdata)
功能:发起呼叫
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
callType | CallType | 无 | 拨打电话方式VOIP:音频, VIDEO:视频 |
calledNumber | String | 无 | 被叫手机号码或Client账号 |
userData | String | 无 | 自定义透传数据(用于需要借助PaaS平台透传数据给AS服务器或者被叫方,最大长度128字节) |
原型:- UCSCall.hangUp(Context mContext, String callid)
功能:挂断电话
返回:无
备注:挂断电话,callId一般传空字符串
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
callid | String | 无 | 当前通话id (目前版本为空) |
原型:- UCSCall.answer(Context mContext, String callid)
功能:接听电话
返回:无
备注:被叫接听,callid一般传空字符串
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
callid | String | 无 | 当前通话id (目前版本为空) |
原型:- UCSCall.sendDTMF(Context mContext, int keyCode, EditText call_dtmf)
功能:发送DTMF
返回:无
备注:发送拨打电话数字
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
keyCode | int | 无 | KeyEnvent CODE |
call_dtmf | EditText | 无 | 用于显示输入的keyCode值 |
原型:- UCSCall.setSpeakerphone(Context mContext,boolean isSpeakerphoneOn)
功能:设置扬声器状态
返回:无
备注:控制扬声器的开关
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
isSpeakerphoneOn | Boolean | 无 | false:关闭 true:开启 |
原型:- UCSCall.isSpeakerphoneOn(Context mContext)
功能:获取扬声器状态
返回:true:开启 ;false:关闭
备注:获取扬声器状态
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
原型:- UCSCall.setMicMute( boolean isMicMute)
功能:设置静音状态
返回:无
备注:设置静音
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
isMicMute | boolean | 无 | true:静音 ;false:正常 |
原型:- UCSCall.isMicMute()
功能:获取静音状态
返回:boolean true:静音 ;false:正常
备注:获取设备的静音状态
参数:无
原型:- UCSCall.startRinging(Context mContext, boolean isVibrator)
功能:播放来电铃声
返回:无
备注:播放来电铃声,这个铃声是系统铃声
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
isVibrator | boolean | 无 | 是否振动 |
原型:- UCSCall.stopRinging(Context mContext)
功能:停止播放来电铃声
返回:无
备注:停止播放来电铃声
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
原型:- UCSCall.startCallRinging(Context mContext,String fileName)
功能:播放去电铃声
返回:无
备注:自己定义铃声文件,这个铃声文件一般放在assets目录下
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
fileName | String | 无 | 音频裸数据文件名称,为PCM格式,放在assets目录下 |
原型:- UCSCall.stopCallRinging(Context mContext)
功能:停止播放去电铃声
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 程序上下文 |
原型:- UCSCall.StartRecord(String filePath)
功能:开启录音
返回: 0:成功;-1:失败
备注:此方法在电话接通时设置
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
filePath | String | 无 | 保存录音文件路径 |
原型:- UCSCall.StopRecord ()
功能:停止录音
返回: 0:成功;-1:失败
备注:此方法在电话挂断时设置
参数:无
原型:- onDialFailed (String callid,UcsReason reason)
功能:呼叫失败回调
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | String | 无 | 当前通话id (目前版本可以为空) |
reason | UcsReason | 无 | 呼叫失败的原因 |
原型:- onHangUp(String callid,UcsReason reason)
功能:呼叫释放
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | String | 无 | 当前通话id (目前版本可以为空) |
reason | UcsReason | 无 | 呼叫被释放的原因 |
原型:- onAlerting (String callid)
功能:呼叫振铃
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | String | 无 | 当前通话id (目前版本可以为空) |
原型:- onAnswer(String callid)
功能:被叫接听
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
callid | String | 无 | 当前通话id (目前版本可以为空) |
原型:- 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 | 无 | 用户透传数据(未使用时,可不关心) |
原型:- public void onDTMF(int dtmfCode)
功能:DTMF回调
返回:无
备注:DTMF回调(*号为10 #号为11)
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
dtmfCode | int | 无 | DTMF回调(*号为10 #号为11) |
原型:- public void singlePass(int reason)
功能:单通出现后回调此方法
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
reason | int | 无 | 单通回调的错误码 |
原型:- public void onNetworkState(int reason,String message)
功能:网络状态上报回调此方法
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
reason | int | 无 | 0无法获取网络状态, 1网络状态极好, 2网络状态良好, 3网络状态一般, 4网络状态极差 |
message | String | 无 | 描述 |
原型:- UCSCall.initCameraConfig(Activity mActivity, LinearLayout remoteLinearLayout, LinearLayout localLinearLayout)
功能:初始化视频设置
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mActivity | Activity | 无 | 显示视频界面的activity |
remoteLinearLayout | LinearLayout | 无 | 显示对方视频的布局 |
localLinearLayout | LinearLayout | 无 | 显示本地视频的布局 |
原型:- UCSCall. setVideoAttr(VideoDecParam videoDecparam,VideoEncParam videoEncParam)
功能:设置用户定义的编解码
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
videoDecparam | VideoDecParam | 无 | 编码参数 |
videoEncParam | VideoEncParam | 无 | 解码参数 |
原型:- UCSCall. refreshCamera(UCSCameraType cameraType, UCSFrameType frameType)
功能:刷新视频显示
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
cameraType | UCSCameraType | 无 | 刷新摄像头的枚举 |
frameType | UCSFrameType | 无 | 是否显示边框的枚举 |
原型:- UCSCall. getCameraNum()
功能:获取摄像头个数
返回:摄像头个数
备注:无
参数:无
原型:- UCSCall. getCurrentCameraIndex()
功能:获取当前摄像头索引
返回:摄像头索引
备注:无
参数:无
原型:- UCSCall. switchCameraDevice(int cameraIndex,RotateType rotateType)
功能:切换摄像头旋转角度
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
cameraIndex | int | 无 | 摄像头索引 |
rotateType | RotateType | 无 | 旋转角度 |
原型:- UCSCall. openCamera(UCSCameraType camera)
功能:打开本地/远程摄像头
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
camera | UCSCameraType | 无 | 摄像头类型枚举 |
原型:- UCSCall. closeCamera(UCSCameraType camera)
功能:关闭摄像头
返回:无
备注:停止本地摄像头,把本地界面隐藏但是可以接收数据和发送数据
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
cameraType | UCSCameraType | 无 | 摄像头类型枚举 |
原型:- UCSCall. switchVideoMode(UCSCameraType cameraType)
功能:视频模式切换
返回:无
备注:四种视频模式:本地模式、远程模式、后台模式、正常模式。
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
cameraType | UCSCameraType | 无 | UCSCameraType: 枚举 远程模式、本地模式、后台模式、正常模式 |
原型:- UCSCall. setCameraPreViewStatu(Context mContext,boolean isPreView)
功能:开启/关闭视频来电
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 上下文 |
isPreView | boolean | 无 | true:支持 false:不支持 |
原型:- UCSCall. isCameraPreviewStatu(Context mContext)
功能:查询是否开启视频来电预览
返回:true:已开启 false:未开启
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mContext | Context | 无 | 上下文 |
原型:- UCSCall. videoCapture(UCSCameraType isLocal,String filenName,String savePath)
功能:视频截图
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
isLocal | UCSCameraType | 无 | 摄像头类型枚举 |
filenName | String | 无 | 预保存的文件名 |
savePath | String | 无 | 视频文件保存的路径 |
原型:- UCSCall. videoSetSendReciveRotation(int send_rotation, int recived_rotation)
功能:视频旋转
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
send_rotation | int | 无 | 发送的视频旋转角度 |
recived_rotation | int | 无 | 接收的视频旋转角度 |
原型:- UCSCall. setFlashCode(boolean mode)
功能:打开/关闭闪光灯
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
mode | boolean | 无 | 打开:true关闭:false |
原型:- UCSCall. getFlashCode()
功能:获取闪关灯状态
返回:ture:已开启 false:已关闭
备注:无
参数:无
原型:- public void onRemoteCameraMode (UCSCameraType cameraType)
功能:回调远端视频模式
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
cameraType | UCSCameraType | LOCALCAMERA,只开了本地视频;REMOTECAMERA, 只开了远端视频;ALL 双向视频都开启了 | 无 |
原型:- public void onCameraCapture (String videoCapFilePath)
功能:视频截屏成功调用
返回:无
备注:无
参数:
参数名 | 类型 | 约束 | 说明 |
---|---|---|---|
videoCapFilePath | String | 无 | 截屏图片保存的路径 |
枚举类,呼叫类型:VOIP(音频),VIEDO(视频)
枚举类,两种账户类型:PHONE,CLIENT。
枚举类,五种旋转类型:
DEFAULT: 顺时针旋转90度
RETATE_0: 横的90度,头朝x轴负方向
RETATE_90: 顺时针旋转90度
RETATE_180: 顺时针旋转180度
RETATE_270: 顺时针旋转270度
枚举类,四种视频类型:
LOCALCAMERA: 本地视频,处于发送状态时候,只发送本地视频流。
REMOTECAMERA: 远程视频,处于接收状态时候,只接收对方的视频流。
BACKGROUNDCAMERA: 后台模式,关闭了接收但是可以发送,一般在刷新摄像头和关闭摄像头方法中使用。
ALL: 全部,既发送也接收视频流。
枚举类,两种边框类型:ORIGINAL,FRAME。
枚举类,两种采集格式类型:i420,h264。
<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"/>
在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" />
请勿在AndroidManifest中配置如下属性,否则会导致视频功能不可用:
android:targetSdkVersion
关于摄像头的操作接口,如前后摄像头切换、摄像头旋转角度等操作,需要在通话建立后,才可以操作。通话结束后的复位操作需要开发者自己完成。
静音、扬声器、闪光灯等设备操作接口,需要在主叫收到onAlerting回调时或者被叫收到onIncomming回调时进行操作。通话结束后的复位操作需要开发者自己完成。
视频来电预览接口,在进行通话业务前进行配置。配置一次即可,不需要每通电话都配置。
所属类 | 函数 | 说明 |
---|---|---|
UcsReason | getReason() | 获取当前错误码 |
UcsReason | getMsg() | 获取错误码描述 |
枚举类 | 枚举值 | 说明 |
---|---|---|
VideoExternFormat | i420 | i420文件 |
VideoExternFormat | h264 | h264文件 |