Skip to content

Android update

【必接】强制更新

本文档将对强制更新功能进行说明。
所谓强制更新,是指用户在启动游戏的同时,提示用户游戏有更加新的版本可以下载安装的功能。
您可以在OPE工具中配置应用的更新计划,配置方式请参考OPE工具说明。
我们支持以下3种更新模式:
1.跳转Appstore更新
2.跳转GooglePlay更新
3.APK下载更新
LCM的更新通知会通过事件回调通知开发者,我们提供了简单的UI来方便开发者直接使用,但建议开发者绘制自己的UI。

一.首先需要在AndroidManifest.xml中配置强更相关,如下:

<!-- ############################# Force Update START ############################# -->
<!-- LCM download service used for update -->
<service android:name="com.denachina.lcm.sdk.update.DownloadService" />
<receiver android:name="com.denachina.lcm.sdk.update.NetWorkConnectionChangeReceiver">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
    </intent-filter>
</receiver>
<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="PACKAGE_NAME.fileProvider"
    android:grantUriPermissions="true"
    android:exported="false">
    <meta-data
       android:name="android.support.FILE_PROVIDER_PATHS"
       android:resource="@xml/file_paths" />
</provider>
<!-- ############################# Force Update END ############################# -->

二.之前说过,EventHandler是LCMSDK和游戏客户端沟通的桥梁,在通过以下代码初始化LCMSDK时,接入者必须传入一个EventHandler对象:

LCMSDK.init(this, eventHandler);

而这个eventHandler对象需要接入者自行实现,重写其内部的方法,强制更新的通知则是通过EventHandler.onUpdate(LCMUpdater updater)方法接收的。

一旦游戏客户端接收到onUpdate(LCMUpdater updater)回调,即说明有强制更新需要处理,此时接入者需要向用户展示强更的UI,有两种选择:

1.使用LCMSDK提供的默认强更UI:

// Open default UI
updater.showDefaultUI();

2.自定义强更UI:

自定义强更UI可以参考SampleActivity.java中提供的示例代码,请搜索"showUpdateDialog"关键字。

关于自定义强更UI,这里需要做以下重要说明:

(1)所有和强更相关的信息都被封装在LCMUpdater对象内,包括绘制强更进度条所需的下载进度信息等。接入者可调用以下方法开始下载流程:

updater.download(ProcessChangeListener processChangeListener)

(2)下载结束以后,调用以下语句进行安装:

updater.install(SampleActivity.this);

(3)当触发onUpdate(LCMUpdater updater)时,LCMSDK会自动停止后续的登录处理,只有调用了以下方法时,LSDK才会继续登录流程:

updater.continueProcessing();

但是该方法不能滥用,接入者需自行判断使用时机,一般来说如果本次更新是“非强制更新”,那么接入者需要在适当的时候调用该方法。

完整强更流程的实现,请务必参考我们提供的Sample中onUpdate(LCMUpdater updater)方法的处理逻辑!

Back to top