Android

ReleaseNote

版本时间修改内容
3.4.4.42022 年 3 月 3 日整理接口

SDK 概要

Data SDK 便于接入方快速对接信息流的 api,节省对接工作量

工程配置

接入之前请首先再一览平台为您的应用创建好accessKeyaccessToken

添加依赖

开发者可以使用Gradle方式导入一览 SDK

步骤一:添加仓库

project级别的build.gradle文件中添加Maven的引用,如下:

allprojects {
    repositories {
        google()
        jcenter()
        //添加一览maven地址
        maven {
            url 'http://nexus.1lan.tv/repository/maven-releases/'
        }
    }
}

步骤二:添加依赖

在主modulebuild.gradle文件添加 SDK 依赖

dependencies {
    //添加SDK主要依赖
    implementation "com.yilan.sdk:data:3.4.4.4"
    //添加SDK其他所需依赖
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
}

代码混淆

默认情况下不需要您关注 SDK 混淆的配置,相关的proguard配置位于 SDK AAR文件中**"/proguard.txt",您可以通过 check 混淆后的您的mapping文件来判断这些配置是否生效。例如,您可以 check 包名com.yilan.sdk**下类的 public 和 protected 成员是否被 keep 来验证 SDK AAR 文件中的 proguard 配置被正确应用。

SDK 初始化配置

初始化配置

开发者需要在Application的onCreate()方法中调用以下代码来初始化 sdk。

YLInit.getInstance()
  .setApplication(this)
  .setAccessKey("")//设置accesskey
  .setAccessToken("")//设置token
  .build();

方法及参数说明如下:

方法名方法说明是否为必须参数
setApplication(Application context)设置 Context
setAccessToken(String token)设置 token,由一览提供是,注册后台获取
setAccessKey(String key)设置 key,由一览提供是,注册后台获取

隐私合规检测说明

2021 年 5 月 1 日起,由国家互联网信息办公室、工业和信息化部、公安部、国家市场监督管理总局联合制定了《常见类型移动互联网应用程序必要个人信息范围规定》(简称“App 必要个人信息范围规定”)已正式施行。“App 必要个人信息范围规定”不仅明确常见 39 种类型的 App 必要个人信息范围,而且明确移动互联网应用程序(App)运营者不得因用户不同意收集非必要个人信息,而拒绝用户使用 App 基本功能服务。为了避免 App 被下架,请您务必做好两件事:首先将 SDK 升级至满足监管要求的最新版本,再按下文合规解法进行配置。

我们的 SDK 未经用户同意前默认不会获取设备的敏感信息,为保证您的在集成 SDK 之后,能够满足工信部相关合规要求,您应确保在 App 安装后首次冷启动时,在用户阅读您的**《隐私政策》并取得用户授权之后,调用提交隐私协议函数FSDevice.setSensitiveEnable(true)提交隐私协议。反之,如果用户不同意《隐私政策》**授权,则不能调用FSDevice.setSensitiveEnable(true)提交隐私协议。

//在用户阅读您的**《隐私政策》**并取得用户授权之后调用
FSDevice.setSensitiveEnable(true);

信息流 API 说明

请求接口在YLDataRequest类中,这是一个单例类,下面介绍各个 api 的用法及字段含义

1.获取频道列表

  • 请求示例
/**
     * 请求频道列表
     *
     * @param callback
     * @param videoType; 视频类型 1 横版 2 竖版
     */
IYLDataRequest.REQUEST.getChannels(int videoType,new YLCallBack<ChannelList>() {
            @Override
            public void onSuccess(ChannelList data) {
								List<Channel> channels = data.getData();
            }

            @Override
            public void onError(int httpCode, String ylCode, String msg) {

            }
});
  • 返回参数
  • ChannelList 字段属性说明
字段名字段类型描述
dataList< Channel >频道列表
  • Channel 字段属性说明
字段名字段类型描述
idString频道 id
nameString频道名称

2.获取视频信息流(横版)

  • 请求示例
/**
     * 请求频道视频列表
     *
     * @param channelId 频道id
     * @param load_type 加载方式:0:上拉加载更多 1:非首次下拉刷新时 2:首次刷新某个频道
     * @param callback  回调
     */
IYLDataRequest.REQUEST.feedList(channelId, loadType, new YLCallBack<MediaList>() {
            @Override
            public void onSuccess(MediaList data) {
								List<MediaInfo> mediaInfos = data.getData();
            }

            @Override
            public void onError(int httpCode, String ylCode, String msg) {

            }
        });
  • 请求参数:
参数名称类型默认值是否必传解释
channel_idstring频道 ID
load_typeint0-上拉,1-下拉,2-首次刷新
  • 返回参数
  • MediaList 字段属性说明
字段名字段类型描述
dataList < MediaInfo >频道列表
  • MediaInfo 字段属性说明
字段名字段类型描述
video_idstring视频编号
titlestring视频标题
imagestring视频封面图
tagsstring视频标签,多标签用英文逗号分隔
durationint视频时长(单位秒)
h5_urlstring视频 h5 播放地址
share_urlstring视频 分享 地址
providerobject视频来源
provider.idstring视频来源 id
provider.namestring视频来源昵称
provider.avatarstring视频来源头像
provider.fansInt作者粉丝数量
provider.awordstring作者签名
provider.videosint作者视频数量
play_numint播放数
like_numint点赞数
video_hint视频高
video_wint视频宽
publish_datestring视频发布时间

4.获取视频详情

  • 请求示例
IYLDataRequest.REQUEST.videoDetail(videoId, source, new YLCallBack<MediaDetail>() {
            @Override
            public void onSuccess(MediaDetail data) {

            }

            @Override
            public void onError(int httpCode, String ylCode, String msg) {

            }
        });
  • 请求参数:
参数名称类型默认值是否必传解释
videoIdstring视频编号,信息流接口返回
sourceint预留字段,传 0 即可
  • 返回参数

  • MediaDetail 字段属性说明

字段名字段类型描述
video_idstring视频编号
titlestring视频标题
imagestring视频封面图
durationint视频时长(单位秒)
h5_urlstring视频 h5 播放地址
share_urlstring视频 分享 地址

5.获取相关视频

  • 请求示例
IYLDataRequest.REQUEST.getRelateVideos(videoId, new YLCallBack<MediaList>() {
            @Override
            public void onSuccess(MediaList data) {

            }

            @Override
            public void onError(int httpCode, String ylCode, String msg) {

            }
        });
  • 请求参数:
参数名称类型默认值是否必传解释
videoIdstring视频编号,信息流接口返回
  • 返回参数
  • MediaList 字段属性说明
字段名字段类型描述
dataList < MediaInfo >频道列表
  • MediaInfo 字段属性说明
字段名字段类型描述
video_idstring视频编号
titlestring视频标题
imagestring视频封面图
tagsstring视频标签,多标签用英文逗号分隔
durationint视频时长(单位秒)
h5_urlstring视频 h5 播放地址
share_urlstring视频 分享 地址
providerobject视频来源
provider.idstring视频来源 id
provider.namestring视频来源昵称
provider.avatarstring视频来源头像
publish_datestring视频发布时间
video_wint视频宽
video_hint视频高
play_numint播放数
like_numint点赞数

6.获取视频作者信息

  • 请求示例
IYLDataRequest.REQUEST.cpInfo(cpId, source,new YLCallBack<CpInfo>() {
            @Override
            public void onSuccess(CpInfo data) {

            }

            @Override
            public void onError(int httpCode, String ylCode, String msg) {

            }
        });
  • 请求参数:
参数名称类型默认值是否必传解释
cpIdstring视频作者 id,信息流接口返回,provider.id
SourceInt预留字段,传 0 即可
  • 返回参数
  • CpInfo 字段属性说明
字段名字段类型描述
idstring视频来源 id
namestring视频来源昵称
avatarstring视频来源头像
awordstring作者签名
videosint作品数
fansstring粉丝数
isFollowdstring是否关注

7.获取作者视频列表

  • 请求示例
IYLDataRequest.REQUEST.cpVideos(String cpID, int videoType, int source, int pg, int sz, new YLCallBack<MediaList>() {
            @Override
            public void onSuccess(MediaList data) {

            }

            @Override
            public void onError(int httpCode, String ylCode, String msg) {

            }
        });
  • 请求参数:
参数名称类型默认值是否必传解释
cpIDstring视频编号,信息流接口返回
videoTypeint视频类型,1-横屏,2-竖屏
sourceint预留字段,传 0 即可
pgint1页数
szint20页大小
  • 返回参数
  • MediaList 字段属性说明
字段名字段类型描述
dataList < MediaInfo >频道列表
  • MediaInfo 字段属性说明
字段名字段类型描述
video_idstring视频编号
titlestring视频标题
imagestring视频封面图
tagsstring视频标签,多标签用英文逗号分隔
durationint视频时长(单位秒)
h5_urlstring视频 h5 播放地址
share_urlstring视频 分享 地址
providerobject视频来源
provider.idstring视频来源 id
provider.namestring视频来源昵称
provider.avatarstring视频来源头像
publish_datestring视频发布时间
video_wint视频宽
video_hint视频高
play_numint播放数
like_numint点赞数

8.获取视频播放地址

  • 请求示例
IYLDataRequest.REQUEST.videoPlay(videoId, source, new YLCallBack<PlayUrlList>() {
            @Override
            public void onSuccess(PlayUrlList data) {

            }

            @Override
            public void onError(int httpCode, String ylCode, String msg) {

            }
        });
  • 请求参数:
参数名称类型默认值是否必传解释
videoIdstring视频编号,信息流接口返回
sourceint预留字段,传 0 即可
  • 返回参数
  • PlayUrlList 字段属性说明
字段名字段类型描述
bitratesList < Play >播放地址列表
  • Play 字段属性说明
字段名字段类型描述
namestring视频清晰度描述(高清,标清,超清)
uristring视频播放地址
sizestring视频大小
codestring视频清晰度码(ld,sd,hd)

上报 API 说明

1.视频曝光上报

上报时机

视频在屏幕中出现,即被算展现一次曝光。

  • 代码示例

    ReporterEngine.instance().reportVideoShow(mediaInfo,position);
    
  • 请求参数:

参数名称类型默认值是否必传解释
mediaInfoMediaInfo视频信息流返回的单个 item
positionint-当前视频在页面中的位置