SDK集成
更新时间:2025-02-12 11:32:05
解压SDK后将得到以下文件
提供的AppSDK文件名如下:RTCX_Android_AppSDK_{version}_{hash}_{datetime}_Release.zip
模块 | SDK | 说明 | 备注 |
---|---|---|---|
基础包 | libsdkcfg-Release.aar | 基础依赖SDK,为其他SDK提供基础服务。如日志打印,日志等级控制 | 必选 |
libuserdevicemgr-Release.aar | 用户设备管理SDK,添加,列表,解绑等服务封装 | 必选 | |
libapiclient-Release.aar | API通道SDK,提供API通道能力,平台接口调用通道。 | 必选 | |
libsdkcfg-Release.aar | 初始化SDK,提供SDK统一初始化及基础环境配置信息。 | 必选 | |
libsignaling-Release.aar | 长连接通道SDK,提供IoT业务协议封装的云端数据下行能力,为App提 供发布消息的能力和支持请求响应模型 | 必选 | |
用户账号 | libaccount-Release.aar | 提供自建账号体系能力,包括登录、登出等功能 | 必选 |
音视频 | libplayback-Release.aar | 视频录制事件相关服务接口封装 | 音视频设备必选 |
libplayer-Release.aar | RTCX App端SDK提供了音视频播放、语音对讲等功能 | 音视频设备必选 | |
设备控制 | libthing-Release.aar | 物模型 SDK 提供了 App 端的物模型 | 可选 |
- 基础包提供了基础服务能力,包括日志打印搜集、平台原子接口调用、SDK统一初始化、网络环境配置、长连接消息上下行收发、设备绑定与解绑、设备列表获取等,
- 用户账号模块提供账号注册、登录、登出、密码管理、验证码收发能力,依赖于基础包。
- 音视频模块提供了音视频设备的直播、回放、语音对讲等相关能力,依赖于基础包,为可选SDK,如果不需要音视频播放功能,可以不选
- 设备控制模块提供了对设备的服务操作,如PTZ转动控制、设备属性状态的获取与设置等控制能力,依赖于基础包,为可选SDK,如果不需要操作设备,可以不选
拷贝SDK至libs目录下
拷贝解压出来的.aar至 …/{app模块}/libs文件夹下
配置Gradle
android{
packagingOptions {
...
exclude 'META-INF/proguard/coroutines.pro'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libpolarisavcodec.so'
pickFirst 'lib/arm64-v8a/libpolarisavutil.so'
pickFirst 'lib/arm64-v8a/libpolarisfreetype.so'
pickFirst 'lib/arm64-v8a/libpolarisswresample.so'
pickFirst 'lib/arm64-v8a/libpolarisswscale.so'
pickFirst 'lib/arm64-v8a/libpolarisavfilter.so'
pickFirst 'lib/arm64-v8a/libpolarisavformat.so'
pickFirst 'lib/armeabi/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libpolarisavcodec.so'
pickFirst 'lib/armeabi-v7a/libpolarisavutil.so'
pickFirst 'lib/armeabi-v7a/libpolarisfreetype.so'
pickFirst 'lib/armeabi-v7a/libpolarisswresample.so'
pickFirst 'lib/armeabi-v7a/libpolarisswscale.so'
pickFirst 'lib/armeabi-v7a/libpolarisavfilter.so'
pickFirst 'lib/armeabi-v7a/libpolarisavformat.so'
}
defaultConfig {
...
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
}
dependencies {
...
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
implementation 'com.alibaba.fastjson:1.2.83'
implementation 'org.jetbrains.kotlin:kotlin-reflect:1.9.20'
implementation 'org.conscrypt:conscrypt-android:2.2.1'
api fileTree(dir: "./libs", include: ["*.jar", "*.aar"])
}
配置权限
<!—存储权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--读存储(媒体和文件)权限,Android 13及更高版本申请-->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<!-- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!— wifi状态权限 配网需要 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
配置混淆
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-keep class com.iperf3.jni.** { *;}
-keep interface com.iperf3.jni.** { *;}
# keep fastjson
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.**{*;}
-keep interface com.alibaba.fastjson.** { *;}
-dontwarn com.polaris.iot.appsdk.**
-keep class com.polaris.iot.appsdk.**{*;}
-keep interface com.polaris.iot.appsdk.**{*;}
-keep class com.polaris.MultiStreamSource.** {*;}
-keep class com.polaris.MediaPlayer.** {*;}
-keep interface com.polaris.MediaPlayer.** {*;}
-keep class org.webrtc.** {*;}
-keep interface org.webrtc.** {*;}
-keep class rtcx.im.sdk.**{*;}
-keep interface rtcx.im.sdk.**{*;}
-keep class kotlin.jvm.** {*;}
-keep class kotlin.reflect.jvm.** {*;}
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-keep class okio.** { *; }
-keep interface okio.** { *; }
-dontwarn okhttp3.**
-dontwarn okio.**