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)方法的处理逻辑!