发送端-推送SDK 快速开始 SDK集成 Android

# 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();