客户可通过接入AndroidSDK快速实现Android端上的音频通话及视频通话等功能,依托阿里的研发资源,我们为客户提供安全、可靠、弹性、低成本的实时通信服务。

功能特性

提供VoIP to PSTN,PSTN to VoIP, VoIP to VoIP通话场景的服务,接入方可根据需求选择对应的应用场景。

开发准备

  1. 开始前请确保已完成创建阿里云账号,完成企业实名认证
  2. 获取阿里云访问密钥
  3. 在控制台完成语音号码

SDK下载地址

SDK下载地址:Android SDK

demo+SDK下载地址:Android SDK

crash组件下载:Android SDK(crash组件)

依赖包下载:依赖包

接入前准备

1.获取token

为了保证安全性,融合通信SDK通过服务端下发的临时token作为身份标识与服务进行交互。临时token可通过融合通信服务pop接口从阿里云获得服务端API指南

,并且具有时效性。SDK在token即将失效或其他需求而需要更新token时,会通过回调通知接入方,App需自行实现接口获取最新token并传递给SDK。推荐的交互流程如下:1

2.确认版本

融合通信SDK分为音频版本与视频版本,视频版本支持所有功能,音频版本仅支持音频通话,可以通过版本号区分当前版本是否支持视频(音频版本号以.audio结尾),也可以调用API判断。

2

设备以及系统

设备要求:搭载 Android 系统的设备

系统要求:语音版Android 4.0.2(API 14) 及其以上,视频版Android 4.1、4.1.1

开发工具要求:Android studio

开发环境搭建

1.导入sdk

  • gradle倒入(暂未对外开放)。

    在项目目录下的build.gradle文件里面的allprojects里面加入maven仓库。

    allprojects {    
    repositories {  
          ...    
          maven { url "http://mvnrepo.alibaba-inc.com/mvn/repository" }
    }

    配置依赖

    gradle 3.4及以上版本

    implementation('com.alicom.rtc:alicomRTC:latest.release@aar'){
         transitive true
     }
    or
     api('com.alicom.rtc:alicomRTC:latest.release@aar'){
         transitive true
     }

    gradle 3.4及以下版本

    compile('com.alicom.rtc:alicomRTC:latest.release@aar'){
         transitive true
     }
  • 手工倒入

    请先下载融合通信SDK(点击下载) ,解压后放至项目目录,然后根据项目打包环境,自行引入本地依赖。gradle配置参考:

    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])

    在项目目录下的build.gradle文件里面的allprojects里面加入maven仓库。

    allprojects {    
    repositories {  
          ...    
          maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
    }

    如若使用本地依赖,请确保项目中已引入以下依赖:

    implementation 'com.alibaba:fastjson:1.2.48'
    implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.1'
    //如果启用crash组件,增加SDK稳定性请增加以下依赖
    implementation 'com.ucweb.wpk:crashsdk:3.2.0.1@aar' 

    1.7.0版本SDK加入了crash组件,用来保障增加SDK稳定性。如果启用crash组件还需将demo工程lib目录下的crashshield-release.aar拷贝到自己的lib目录下并完成依赖implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])

    注意 如若接入方项目构建中因引入其他依赖包从而导致出现类重复或冲突,请联系业务经理。

配置so架构

单架构配置

目前sdk中暂只包含armeabi架构so库,故在打包时请在build.gradle加入以下配置:

android{
   ......
defaultConfig {
   ndk {
       abiFilters 'armeabi'
  }
}
}

多架构配置

1.修改build.gradle文件中artc版本

由原来的 implementation 'com.taobao.android:artc_engine:1.9.145.0@aar' 改为 implementation 'com.taobao.android:artc_engine:3.0.1.12@aar',或者手工导入最新的3.0.1.12版本的包。

2.修改build.gradle文件中ndk的配置

ndk {
            abiFilters  "armeabi","armeabi-v7a", "arm64-v8a"
  }
说明 若需要其他架构so库,请联系业务经理。

混淆配置

主线版本混淆配置:

-keep class * implements java.io.Serializable{*;}

-keep class org.artc.webrtc.**{*;}

-keep class org.eclipse.paho.client.mqttv3.**{*;}

-keep class com.taobao.artc.internal.**{*;}
-keep class com.taobao.artc.**{*;}
-keepclasseswithmembernames class * {
   native <methods>;
}
#crash组件
-keep class com.uc.crashsdk.** { *; }
-keep interface com.uc.crashsdk.** { *; }

权限配置

<uses-permission android:name="android.permission.INTERNET"/>
<!--视频版本必须-->
<uses-permission android:name="android.permission.CAMERA"/>