Android Studio集成云视讯SDK在云视讯的开发者中心内有集成开发文档,但有一些问题我是在自己集成的过程中发现的,还询问了云视讯相关的工作人员得以解决。
我集成的是云视讯的多媒体业务,提交的是 《测试环境证书-SDKAPI联调管理》,在sdk测试过程(APP运行过程)中,InitActivity需要选中"测试环境"的checkbox。企业开发应该是有相应的《生产环境证书-SDKAPI联调管理》。
先说一下让SDK正常运行的操作步骤(要直接集成SDK的请直接在下边找集成SDK过程):
官网:https://uc.ipower.10086.cn/
1、注册登录后,点击开发者中心,客户端集成,Android , SDK下载,然后下载最新版本的SDK即可
2、点击开发者中心,融合视频语音会议,申请指南,就会看到如下这段话,照做就行,一般需要等待几天就会有回复。
“下载《SDKAPI联调管理模板.xlsx》并按要求填写。填写项目基本信息及功能需求。将填写好的《SDKAPI联调管理模板.xlsx》邮件发送至云视讯开发者公共邮箱 YSX-develop@chinamobile.com 。”
3、点击开发者中心,客户端会议,API文档,虚拟账号接入指引,可以看到下方有虚拟账号接入指引的pdf文档,按照pdf文档操作,获取到token。
注:
1、在sdk测试过程(APP运行过程)中,InitActivity点击”下一步“之后,会进入到LoginActivity,这个页面需要输入账号密码,因为我是测试环境,所以没有账号密码,测试环境只能通token登录。
2、需在《SDKAPI联调管理》内加入白名单的公网IP下进行操作,在公网IP下通过POST请求获取虚拟手机号、通过GET请求获取token,先通过POST请求获取虚拟手机号,再使用虚拟手机号获取token,token有时效,失效后重新获取一下token就行了。
3、POST请求,请求URI中的host,也就是域名,根据你是测试环境证书还是生产环境证书来添加:
请求的参数是JSON串,其中JSON串中的sign按照pdf文档生成,
其中生成虚拟手机号的sign需要的参数有如下:
待生成虚拟手机号成功后,须通过虚拟手机号生成token,生成token的sign所需要的参数有mobile(虚拟手机号),timestamp和identity三个,如下(也就是你获取token需要请求的参数是什么,你就用你请求的参数来生成获取token的sign):
到现在,你应该拿到了你的token,然后将APP_KEY和APP_SECRET填入到下载好的sdk中就能运行了
好了现在能运行了,下边我来讲下集成SDK过程:
1、将提供的三个so文件、ysxcommonlib.aar、ysxmobilertc.aar和ysxsdk.aar,放到工程的lib目录下
2、在app的build.gradle文件中配置文件:
(1)
//官方标注的四个:
implementation(name: 'ysxcommonlib', ext: 'aar')
implementation(name: 'ysxmobilertc', ext: 'aar')
implementation(name: 'ysxsdk', ext: 'aar')
implementation 'androidx.recyclerview:recyclerview:1.0.0'
//下边是我对比sdk添加的:
implementation 'io.jsonwebtoken:jjwt:0.9.0'
implementation 'com.android.support:multidex:1.0.3'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation project(':imlibrary') //用于IM集成,需要在IM集成完再添加
(2)
repositories {
google()
mavenCentral()
flatDir {
dirs 'libs'
}
}
我在gradle中差不多只加了上边这些,官方sdk中还有一句,如下图,各位根据情况自行添加
ndk { abiFilters "armeabi-v7a","arm64-v8a","x86" }
3、将imlibrary 即IM通讯集成到自己的项目中,操作步骤请跳转
IM集成
4、Mainifest.xml文件权限(只是提醒一下):
<!-- sdk所需权限 -->
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<permission
android:name="${applicationId}.permission.MIPUSH_RECEIVE"
android:protectionLevel="signature" />
<uses-feature android:glEsVersion="0x00020000" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- Mi推送配置 start -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE" />
5、这个也要注意一下
注:
1、三个so文件所在目录:
2、build.gradle文件配置(按照sdk来):
(1)recyclerview 的版本我是按照sdk来的
implementation 'androidx.recyclerview:recyclerview:1.0.0'
(2)androidx的版本要设置为1.0.0(按照sdk来),因为1.1.0把localbroadcast给废了,我运行会报错,没有加“implementation ‘androidx.legacy:legacy-support-v4:1.0.0’ ”我运行也是报错,报错截图如下
报错截图如下:
3、如果报以下错误,说明没有集成IM(即 imlibrary 未导入)
下边来讲下如何集成IM
IM集成完成啦~
到此,集成到自己项目里的sdk应该可以运行了,希望本篇文章可以帮助到大家(✪ω✪)