使用 JusTalk Cloud SDK for Android

简介

本文档介绍如何导入和初始化 JusTalk Cloud SDK for Android(以下简称 SDK)。请完成准备环境、准备 SDK 文件、拷贝文件、配置权限和初始化。

准备环境

请确保开发环境满足以下要求:

* Android Studio 2.2 或更高版本  
* Android SDK Level 16 或更高  
* 支持语音及视频功能的真机  

若您对 Android 开发环境有特殊需求,请联系我们

准备 SDK 文件

若您还未获取 SDK,请前往下载页面,下载最新的 SDK 文件。

解压下载的压缩包后,您将得到简易的 sample 工程,如下图:

SDK 由以下文件组成:

名称 描述
libmtc.so 基础业务库
libzmf.so 媒体设备管理库
mdm.jar 多设备自动适配接口包
mtc.jar 基础业务接口包
zmf.jar 媒体设备管理接口包
jcapi.jar JCApi 接口包

导入文件

1. 拷贝文件
将 SDK 文件中 libs 目录下的 armeabi-v7a、mdm.jar、mtc.jar 和 zmf.jar 复制到您的工程对应目录下。若您需要支持 x86 架构的设备,请将 libs 目录下的 x86 也拷贝址对应目录。

2. 配置 Gradle
为确保能连接我们的 so 库,请在您工程 build.gradle 文件中增加以下配置:

配置权限

SDK 需要以下权限:

  • 访问网络:用于通信。
  • 网络状态监听:用于应对网络切换、闪断。
  • 手机设备信息:用于自动适配设备,保证最佳效果。
  • 摄像头:用于获取视频数据。
  • 录音:用于获取音频数据。
  • 读写存储:用于写入日志文件,记录 SDK 运行状态。

1.请先检查您项目编译配置的 build.gradle 文件中的 targetSdkVersion,如下图:

2.若您的 targetSdkVersion 为 22 或以下,请在工程配置文件 AndroidManifest.xml 中添加如下权限:

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

 <uses-permission android:name="android.permission.CAMERA" />

 <uses-permission android:name="android.permission.RECORD_AUDIO" />

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

3.若您的 targetSdkVersion 为 23 或以上,请确保在执行任意 SDK 接口前通过 ActivityCompat.requestPermissions 接口向用户获取如下权限:

 Manifest.permission.WRITE_EXTERNAL_STORAGE
 Manifest.permission.READ_PHONE_STATE
 Manifest.permission.RECORD_AUDIO
 Manifest.permission.CAMERA

4.若您的程序中需要用到视频功能,除获取视频数据权限外,您还需要在 AndroidManifest.xml 中添加摄像头硬件使用声明,以过滤不支持的硬件设备:

 <uses-feature android:name="android.hardware.camera" />
 <uses-feature android:name="android.hardware.camera.autofocus" />

初始化

在操作任何业务之前,您的 APP 界面代码(以下简称 UI)应该首先初始化 SDK。

您可以在需要用到 SDK 功能时再初始化 SDK,代码如下。其中其中 MY_APP_KEY 应设置为您的 AppKey。如何获取 AppKey 请参考在平台上注册并创建应用。

 if (JCConference.getInstance().initialize(this, "MY_APP_KEY")) {
  Log.d("JusTalkCloud", "Hello JusTalk");
 }

日志中输出 “Hello JusTalk” 表示 SDK 初始化成功。至此 SDK 导入完毕。

SDK 导入和初始化常见问题

  1. 调用初始化接口后,程序崩溃,且报以下错误:
JNI DETECTED ERROR IN APPLICATION: 
 JNI FindClass called with pending exception
 java.lang.SecurityException: 
  getDeviceId: 
  Neither user 10246 nor current process has 
  android.permission.READ_PHONE_STATE.

程序未获取权限,请参考配置权限章节,正确配置程序权限。