快速集成

更新时间:2021-05-26

LinkV RTCEngine SDK 支持 Android 5.1 或以上版本系统,AndroidStudio 建议使用 3.6 或以上版本,目前暂不支持模拟器运行。

AppId 和 AppSecret 申请

注册开发者平台账号,创建应用,然后获取 AppId 和 AppSecret 获取 AppID 和 AppSecret 指引

准备环境

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

  • Android Studio 3.0 或以上版本。
  • Android 版本不低于 5.1支持音视频的 Android 真机。
  • Android 设备已经连接到 Internet

导入工程

目前 LinkV 实时音视频 SDK 仅支持通过拷贝 .jar.so 的方式集成,目前支持的平台架构包括:armeabi-v7arm64-v8a,集成步骤如下。

手动集成

历史版本更新,请查看:LinkV RTCEngineLib Android 历史更新日志。
  • 导入并配置SDK

    1. 下载完 最新SDK 后进行解压。

    2. linkV.jar 文件放入到项目的 libs 文件夹中,armeabi-v7aarm64-v8a 文件夹放入到 jniLibs 文件夹中。

      android_input_jar

    3. 添加 jar包 引用,打开项目中的 app/build.gradle 文件,添加如下代码:

        ...
        dependencies {
            ...
            implementation files('libs/linkv.jar')
        }
      

      android_import_jar

    4. 指定 ndk 支持的平台类型,打开项目中的 app/build.gradle 文件,添加如下代码:

          ...
          ndk {
              abiFilters 'armeabi-v7a', 'arm64-v8a'
          }
      

      android_set_ndk

添加权限

打开项目中的 app/src/main/AndroidManifest.xml 文件,添加如下代码。

    <!--    访问网络连接,可能产生GPRS流量-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--    获取网络信息状态,如当前的网络连接是否有效-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--    获取当前WiFi接入的状态以及WLAN热点的信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--   允许访问摄像头进行拍照-->
    <uses-permission android:name="android.permission.CAMERA" />
    <!--    允许使用相机-->
    <uses-feature android:name="android.hardware.camera" />
    <!--    允许使用相机的自动对焦功能-->
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <!--    录制声音通过手机或耳机的麦克-->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <!--    修改声音设置信息-->
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

因为 Android 6.0 在一些比较重要的权限上要求必须动态申请权限,不能只通过 AndroidMainfest.xml 文件声明权限。因此还需要参考执行如下代码(requestPermissionsActivity 的方法)

String[] permissionNeeded = {
        "android.permission.CAMERA",
        "android.permission.RECORD_AUDIO"};

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (ContextCompat.checkSelfPermission(this, "android.permission.CAMERA") != PackageManager.PERMISSION_GRANTED ||
        ContextCompat.checkSelfPermission(this, "android.permission.RECORD_AUDIO") != PackageManager.PERMISSION_GRANTED) {
        requestPermissions(permissionNeeded, 101);
    }
}

支持http域名

由于 Android 9.0 以上版本默认禁止使用 http域名,但 sdk 还需要使用到 http域名,故需要做一些配置以支持 Android 9.0 以上的版本使用http域名

创建网络配置xml文件

在项目路径 app/src/main/res/xml 文件夹中创建文件 network_security_config.xml,并添加如下代码:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

android_create_network_config

在AndroidManifest.xml中设置网络配置文件

打开项目中的 app/src/main/AndroidManifest.xml 文件,在 application 标签中添加如下属性:

...
android:networkSecurityConfig="@xml/network_security_config"
...

android_set_network_config

防止混淆代码

打开项目中的 app/proguard-rules.pro 文件,添加如下代码:

...
-keep class com.linkv.rtc.* { *; }

android_add_confuse

测试集成

导入包,然后执行 initSdk ,看是否有问题:

private void initSDK() {
    LVRTCEngine rtcEngine = LVRTCEngine.getInstance(MyApplication.instance);
    // 初始化sdk
    rtcEngine.initSDK();
}