admin管理员组

文章数量:1624783

小米应用商店检查更新SDK(下文简写为『检查更新SDK』)帮助您的用户尽快获得最新版本的应用!轻松增加『自动检查更新』功能,通过小米应用商店的CDN服务,快速的把最新版应用推送给用户!

功能特点:

·支持增量更新:检查更新SDK会自动识别用户版本,并提供diff包给用户,加速省流

·一次发布全面更新:只要在小米应用商店发布新版,所有的用户都可以收到新版发布提醒。

·标准Android SDK:无论用户是否使用MIUI,都可以收到更新提醒。

·方便省心:无需考虑配置服务器,部署CDN等问题,小米应用商店免费提供。

·支持基于设备属性和API-Level的系统版本过滤,会将新版推送给支持的设备。

·独家支持:在MIUI系统上支持调用系统商店更新,升级成功率更高!

立即开始集成:

1.添加sdk依赖

//添加依赖

compile'mi-appstore:xiaomi-update-sdk:4.0.3'

2.在AndroidManifest.xml文件中添加SDK信息

2.1添加检查更新需要的权限

打开AndroidManifest.xml,添加SDK需要的权限到标签下:

2.2添加receiver

android:name="android.support.v4.content.FileProvider"

android:authorities="your_package_name.selfupdate.fileprovider" //请将your_package_name替换成您应用的包名.

android:exported="false"

android:grantUriPermissions="true">

android:name="android.support.FILE_PROVIDER_PATHS"

android:resource="@xml/xiaomi_update_sdk_file_paths" />

3.调用检查更新接口

在需要检查更新的Activity里的OnCreate()方法中调用

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

XiaomiUpdateAgent.update(this);

}

4.API说明

4.1 XiaomiUpdateAgent

4.1.1 public static void update(Context context)

/**

* 触发检查更新, 根据BuildType是否为Debug(BuildConfig.DEBUG=true)决定是否使用沙盒测试

* @param context 会以WeakRerference的形式存在, 若检查更新结果返回时, context已销毁,

*                此次检查更新被忽略

*/

public synchronized static void update(Context context)

4.1.2 public synchronized static void update(Context context,boolean debug)

* 触发检查更新

* @param context 会以WeakRerference的形式存在,若检查更新结果返回时,context已销毁,

*                此次检查更新被忽略

* @param debug 是否使用沙盒测试

*/

public synchronized static void update(Context context, boolean debug)

4.1.3 public static void setUpdateAutoPopup(boolean autoPopup)

/**

* 设置检查到应用可更新时是否自动弹窗,当设置为true时且updte方法传入的Context是Activity,则在检查到更新时自动弹窗提醒

* 若设置为false,或者update接口的Context不是Activity时,则需要应用通过setUpdateListener注册检查结果回调,并自己处理检查结果

* @param autoPopup 设置有可更新包时,是否自动弹出升级对话框,默认为true

*/

public static void setUpdateAutoPopup(boolean autoPopup)

4.1.4 public static void setCheckUpdateOnlyWifi(boolean checkUpdateOnlyWifi)

/**

*设置是否仅在wifi下检查更新

* param checkUpdateOnlyWifi是否仅wifi下检查更新,默认为false

*/

public static void setCheckUpdateOnlyWifi(boolean checkUpdateOnlyWifi)

4.1.4 public static void setUpdateListener(XiaomiUpdateListener updateListener)

设置检查到更新时的回调接口。仅当setUpdateAutoPopup(false)时,才生效。

4.1.5 public static int getSDKVersion()

/**

*返回当前sdk版本号

* return sdk版本号

*/

public static int getSDKVersion()

4.1.6 public static void setUseInternationalHost(boolean useInternational)

/**

*设置是否使用海外地区apk.

*应用商店支持同一个包名在不同中国和海外分发不同的apk.

*设置此参数,可强制使用国内或者海外地区apk,此功能主要用于非miui系统.

*

* param useInternational是否使用海外地区,国际版miui系统默认为true,否则默认为false

*/

public static void setUseInternationalHost(boolean useInternational)

4.1.7 public static void arrange()

/**

*触发下载安装流程。

*当setUpdateAutoPopup(true)时,且update方法Context是Activity,则会在用户点击升级对话框的升级按钮时,触发下载安装。

*当setUpdateAutoPopup(false)时,或update方法Context不是Activity时,检查到更新后,需要应用主动调用此方法触发下载安装.

*根据是设备上是否存在小米应用商店,此方法有两种不同的结果:

*1)存在小米应用商店时,会跳转到应用商店中该应用的详情页,需要用户手动点击升级按扭,后续下载安装由应用商店自动完成,无需应用再操作

*2)不存在小米应用商店时,会使用系统下载管理器下载,并在下载完成后调起设备的包安装器,需要用户手动点击包安装器的升级按钮,才能触发安装

*/

public static void arrange()

4.2 public class UpdateStatus

检查更新返回码:

/**

* 有可更新版本

*/

public static final int STATUS_UPDATE           = 0;

/**

* 无可更新版本

*/

public static final int STATUS_NO_UPDATE        = 1;

/**

* 无wifi连接,当设置了仅wifi检查且当前无wifi时返回此错误码

*/

public static final int STATUS_NO_WIFI          = 2;

/**

* 检查更新时无网络连接

*/

public static final int STATUS_NO_NET           = 3;

/**

* 检查更新失败,主要是由于网络故障或服务器异常等

*/

public static final int STATUS_FAILED           = 4;

/**

* 获取本地apk信息失败

*/

public static final int STATUS_LOCAL_APP_FAILED = 5;

4.3 public class UpdateResponse

检查结果信息

/**

*更新日志

*/

public String updateLog;

/**

*版本名称

*/

public String versionName;

/**

*版本号

*/

public int versionCode;

/**

*下载地址

*/

public String path;

/**

*安装包大小

*/

public long apkSize;

/**

*安装包md5

*/

public String apkHash;

/**

*安装包增量大小.sdk会根据本地apk和服务器apk的diff,下载增量包,并合成最终apk

*/

public long diffSize;

4.4 public interface XiaomiUpdateListener

检查更新回调接口,用于接收检查更新结果,仅在setUpdateAutoPopup(false)时有效

4.4.1 void onUpdateReturned(int updateStatus,UpdateResponse updateInfo)

/**

*检查更新结果回调

* param updateStatus参考4.2 UpdateStatus

* param updateInfo参考4.3 UpdateResponse

*/

void onUpdateReturned(int updateStatus,UpdateResponse updateInfo);

本文标签: 小米商店版本指南android