# SDK集成(Android)
这里主要指导您如何将乐播sdk集成到您的项目中并且能够顺利调用乐播sdk提供的api接口
集成投屏SDK您只需要简单的两步:
- 一 SDK导入及配置
- 二 SDK初始化
# 1 SDK导入及配置
# 1.1 导入SDK
请将aar导入到工程中的libs中,
然后在module的build.gradle中添加以下配置
在android节点中添加以下配置
repositories {
flatDir {
dirs 'libs'
}
}
在dependencies中添加以下配置
compile(name: 'source-sdk', ext: 'aar')
为兼容Android 10,需将投屏SDK所在service设置为前台服务。 需设置SDK的编译版本为29
compileSdkVersion 29
接下来,您就可以调用我们的api了
# 1.2 配置权限
以下为投屏SDK需要的权限,aar包自带有,无需再次配置
<!-- 网络权限 -->
<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.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<!-- mirror -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!-- 推送本地媒体权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<!-- 获取设备名称、蓝牙搜索(蓝牙搜索同时需要蓝牙权限和定位权限) -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
特别说明:
带有镜像功能的SDK,带包带有mirror组权限,无镜像功能SDK无此组权限。
带有蓝牙搜索功能的SDK,将会带有权限
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
,
不带有蓝牙搜索功能的SDK仅会带有
<uses-permission android:name="android.permission.BLUETOOTH" />
用于获取手机名称,以便投屏时在接收端展示投屏来源信息。
# 1.3 混淆
当需要编译打包混淆的时候,投屏SDK已混淆过,无需在对投屏SDK及其依赖的第三方jar包进行混淆,请添加以下乐播配置:
###Lebo
-keep class com.hpplay.**{*;}
-keep class com.hpplay.**$*{*;}
-dontwarn com.hpplay.**
# 1.4 so接入说明(重要)
# 1.4.1、SDK已经将功能必须的so文件打包进aar包中
目前默认包含armeabi,armeabi-v7a, arm64-v8a三种cpu架构的so 如果您的app只支持其中某一种so架构则需要您在SDK接入主工程目录下的build.gradle文件中进行过滤,过滤方法如下:
//假如您的app仅仅支持armeabi架构参考如下方法,如果是多种在后面补上对应的cpu架构即可
defaultConfig {
...
ndk {
abiFilters "armeabi"
}
...
}
# 1.4.2 如果集成过程中觉得aar的体积过大可以删除过滤掉的CPU架构的so文件夹。
删除方法如下:
windows: 将aar文件后缀修改成zip然后用压缩软件打开并删除jni目录下非必须的so文件夹,然后保存把后缀再次修改成aar ubuntu : 直接打开aar文件进入jni目录下删除非必须的so文件夹 mac : 下载并安装eZip工具,将aar文件后缀成zip然后用eZip打开并删除jni目录下非必须的so文件夹,然后保存把后缀再次修改成aar
# 2 极简接入方式
该方式接入简单,可以跳过搜索、连接、推送等步骤(设备搜索列表样式风格固定),跳转有UI推送投屏 (opens new window)查看集成方式 :
# 3 其他接入方式
该方式需要应用层实现搜索列表的显示(显示方式、样式、风格可自定义)、连接、推送等逻辑
# 3.1 SDK初始化
LelinkSourceSDK.getInstance()
.setBindSdkListener(mBindSdkListener)
.setSdkInitInfo(getApplicationContext(),APP_ID,APP_SECRET)
.bindSdk();
或
LelinkSourceSDK.getInstance().bindSdk(context, APP_ID, APP_SECRET,mBindSdkListener);
IBindSdkListener mBindSdkListener = new IBindSdkListener() {
@Override
public void onBindCallback(boolean success) {}
};
SDK 初始化需要传入4个参数:
- 第一个参数:应用程序的context
- 第二个参数:在开发者中心申请的AppID
- 第三个参数:在开发者中心申请的AppSecret
- 第四个参数:sdk初始化状态监听当onBindCallback回调为true表示SDK认证成功,SDK可正常使用
后面的接口调用都要在onBindCallback回调成功之后才能进行。 例如调用搜索接口,需要在onBindCallback回调成功之后才能调用,在onBindCallback回调成功前调用会出现搜不到设备的情况。
**PS: 建议上述的初始化部分在您的Application onCreate 中调用**
关于AppId & AppSecret 的获取,请参考控制台说明 (opens new window)
# 3.2 SDK 注销
// 如果不需要使用投屏sdk时,需要注销SDK,以节省资源开销
LelinkSourceSDK.getInstance().unBindSdk();