本文档旨在说明龙图BaseSDK 封装的渠道资源预下载功能。
本文的所述接口需要在接入龙图BaseSDK,并且初始化以后才可以使用。
仅支持Base SDK2.0.7及以后版本
本文档适用于SDK 接入人员阅读
SDK封装了 vivo渠道预下载功能。
后期将会开放华为,小米,oppo三家渠道功能, 其他渠道没有提供此功能。
游戏使用此功能的同时,还需要支持游戏自行下载资源功能。
SDK不提供资源完整性校验,游戏需要自行校验资源完整性。
对于没有获取到资源或者资源不完整研发需要支持重新下载资源。
渠道 | 资源格式 | 资源大小限制 |
---|---|---|
Vivo | 无格式要求 | 每个包体大小5G以内,同一任务资源包数量不超过20个 |
华为 | 无格式要求 | 每个包体大小不超过2000MB,总大小不超过4000MB,同一任务资源包数量不超过10个 |
OPPO | 无格式要求 | 资源包数量1个,大小不超过6G |
小米 | 无格式要求 | 每个包体不超过4G,总大小不超过8G,同一任务,资源包数量不能超过6个 |
通过此接口可以检测当前设备和渠道是否支持资源下载功能。
如果不支持游戏需要自行下载资源。
/**
* 是否支持预下载功能。
* 渠道是否支持预下载功能,
* 初始化以后才可以调用,
* @return true/flase
*/
public boolean LTBasegetPreDownloadIsSupport();
// 是否支持预下载功能。
boolean IsSupport = LTBaseSDK.getInstance(this).LTBasegetPreDownloadIsSupport();
设置预下载相关功能回调
/**
* 设置预下载相关回调
*
* @param callBack
*/
public void LTBasesetPreDownloadCallBack(LTPreDownloadCallBack callBack);
LTBaseSDK.getInstance(this).LTBasesetPreDownloadCallBack(mLTPreDownloadCallBack);
/**
* 查询当前所有的资源文件信息
*
* @param isSupport 当前渠道是否支持查询
* @param Jsondata 返回的资源文件信息 jsonArray (字段说明见 3.5)
*/
void LTPreDownloadQueryList(boolean isSupport, String Jsondata);
/**
* 读取文件数据流
*
* @param inputStream 需要的资源数据流
* @param fileUri 文件的uri地址
* @param fileName 资源文件名
*/
void LTPreDownloadInputStreamBegin(InputStream inputStream, Uri fileUri, String fileName);
字段key | 字段说明 | 字段类型 |
---|---|---|
fileName | 资源文件名 | String |
md5 | 资源MD5 | String |
fileLength | 资源文件总大小 | Long |
state | 资源状态 0未下载,1下载中,2已下载完成,3已被删除 | int |
currentLength | 当前已经下载资源文件大小 | Long |
fileUri | 文件Uri,可以通过此Uri打开文件 | String |
查询当前所有资源文件信息。
/**
* 查询当前所有资源文件信息。
* 不传fileName,默认查询全部。
* 可以带上fileName。查询某一个文件的信息。
*
* @param fileName (可选,不传默认查询全部文件)
* @param fileMd5 (暂时是预留参数 )
*
*/
public void LTBasegetPreDownloadQueryList(String fileName, String fileMd5);
// 举例查询所有文件。
LTBaseSDK.getInstance(this).LTBasegetPreDownloadQueryList(null, null);
开始读取资源信息,使用查询到的资源fileuri 获取,研发也可以使用file自行读取。
使用此接口会通过回调接口返回InputStream 数据流。研发使用完以后需要自己关闭数据流。
/**
* 读取资源文件.
* <p>
* return InputStream 数据流;
*/
public void LTBaseopenPreDownloadInputStream_begin(Uri fileUri)
//读取资源文件.
LTBaseSDK.getInstance(this).LTBaseopenPreDownloadInputStream_begin(fileUri);
通知渠道文件校验完成。
渠道收到完成通知后会删除本设备上的资源文件。
/**
* 通知渠道文件校验完成。渠道收到完成,会删除资源
*
* @param status 拷贝状态 (0:成功,1:失败)
* @param fileName 完成的文件名(可以为空,如果为空,则为全部完成,渠道会删除全部资源)
*/
public void LTBasesubmitPreDownloadUpdateResult(int status, String fileName);
// 删除全部资源文件。
LTBaseSDK.getInstance(this).LTBasesubmitPreDownloadUpdateResult(0, null);
上海中清龙图软件有限公司