【Android】集成乐播SDK实现投屏功能(一)环境配置
2022-03-29 本文已影响0人
鲨鲨指挥官
一. 环境配置
1. 导入SDK
首先需要从官网下载的ARR文件导入到工程的libs目录下。
在App模块的build.gradle文件下添加如下配置
repositories {
flatDir {
dirs 'libs'
}
}
dependencies{
compile(name: 'source-sdk', ext: 'aar')
}
2. 配置权限
-
动态申请 android.permission.READ_PHONE_STATE 权限
-
如果使用NFC镜像投屏,需要在Manifest清单文件中配置如下内容
<uses-permission android:name="android.permission.NFC" />
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
- 以下是SDK需要的所有权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!-- mirror -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />
<uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT" />
<uses-permission android:name="android.permission.CAPTURE_SECURE_VIDEO_OUTPUT" />
3. 混淆配置
###plist
-keep class com.dd.plist.** { *; }
-dontwarn com.dd.plist.**
###kxml
-keep class org.kxml2.** { *; }
-keep class org.xmlpull.** { *; }
-dontwarn org.kxml2.**
-dontwarn org.xmlpull.**
###Lebo
-keep class com.hpplay.**{*;}
-keep class com.hpplay.**$*{*;}
-dontwarn com.hpplay.**
4. SO文件接入
SDK已经将功能必须的so文件打包进aar包中,目前默认包含armeabi,armeabi-v7a, arm64-v8a,x86四种cpu架构的so 如果您的app只支持其中某一种so架构则需要您在SDK接入主工程目录下的build.gradle文件中进行过滤,过滤方法如下
defaultConfig {
...
ndk {
abiFilters "armeabi"
}
...
}
如果集成过程中觉得aar的体积过大可以删除过滤掉的CPU架构的so文件夹。将aar文件后缀修改成zip然后用压缩软件打开并删除jni目录下非必须的so文件夹,然后保存把后缀再次修改成aar。
5. SDK初始化
在Application中进行配置
LelinkSourceSDK.getInstance()
.setBindSdkListener(mBindSdkListener) //初始化回调事件
.setSdkInitInfo(getApplicationContext(),APP_ID,APP_SECRET) //Context上下文,平台AppId,平台AppSecret
.bindSdk();
或者
//Context上下文,平台AppId,平台AppSecret
LelinkSourceSDK.getInstance().bindSdk(context, APP_ID, APP_SECRET,new IBindSdkListener() {
@Override
public void onBindCallback(boolean b) {
//接收初始化回调事件
}
});
6. SDK销毁
在不使用时进行注销
LelinkSourceSDK.getInstance().unBindSdk();
下一节:关键方法配置