小米應用商店:檢查更新SDK 集成指南

來源: 小米開放平臺
作者:小米開放平臺
時間:2020-10-09
17906
小米應用商店檢查更新SDK(下文簡寫為『檢查更新SDK』)幫助您的用戶盡快獲得最新版本的應用!輕松增加『自動檢查更新』功能,通過小米應用商店的CDN服務,快速的把最新版應用推送給用戶!

NjlkMjk3YS5qcGc.jpg

小米應用商店檢查更新SDK(下文簡寫為『檢查更新SDK』)幫助您的用戶盡快獲得最新版本的應用!輕松增加『自動檢查更新』功能,通過小米應用商店的CDN服務,快速的把最新版應用推送給用戶!

功能特點:

·支持增量更新:檢查更新SDK會自動識別用戶版本,并提供diff包給用戶,加速省流

·一次發(fā)布全面更新:只要在小米應用商店發(fā)布新版,所有的用戶都可以收到新版發(fā)布提醒。

·標準Android SDK:無論用戶是否使用MIUI,都可以收到更新提醒。

·方便省心:無需考慮配置服務器,部署CDN等問題,小米應用商店免費提供。

·支持基于設備屬性和API-Level的系統(tǒng)版本過濾,會將新版推送給支持的設備。

·獨家支持:在MIUI系統(tǒng)上支持調用系統(tǒng)商店更新,升級成功率更高!

立即開始集成:

1.添加sdk依賴

//添加依賴

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

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

2.1添加檢查更新需要的權限

打開AndroidManifest.xml,添加SDK需要的權限到<manifest>標簽下:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-permission android:name="com.xiaomi.market.sdk.UPDATE"/>

2.2添加receiver

<provider

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

    android:authorities="your_package_name.selfupdate.fileprovider" //請將your_package_name替換成您應用的包名.

    android:exported="false"

    android:grantUriPermissions="true">

    <meta-data

        android:name="android.support.FILE_PROVIDER_PATHS"

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

</provider>

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)

/**

 * 觸發(fā)檢查更新, 根據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)

 * 觸發(fā)檢查更新

 * @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)

/**

*設置是否使用海外地區(qū)apk.

*應用商店支持同一個包名在不同中國和海外分發(fā)不同的apk.

*設置此參數,可強制使用國內或者海外地區(qū)apk,此功能主要用于非miui系統(tǒng).

*

* param useInternational是否使用海外地區(qū),國際版miui系統(tǒng)默認為true,否則默認為false

*/

public static void setUseInternationalHost(boolean useInternational)

4.1.7 public static void arrange()

/**

*觸發(fā)下載安裝流程。

*當setUpdateAutoPopup(true)時,且update方法Context是Activity,則會在用戶點擊升級對話框的升級按鈕時,觸發(fā)下載安裝。

*當setUpdateAutoPopup(false)時,或update方法Context不是Activity時,檢查到更新后,需要應用主動調用此方法觸發(fā)下載安裝.

*根據是設備上是否存在小米應用商店,此方法有兩種不同的結果:

*1)存在小米應用商店時,會跳轉到應用商店中該應用的詳情頁,需要用戶手動點擊升級按扭,后續(xù)下載安裝由應用商店自動完成,無需應用再操作

*2)不存在小米應用商店時,會使用系統(tǒng)下載管理器下載,并在下載完成后調起設備的包安裝器,需要用戶手動點擊包安裝器的升級按鈕,才能觸發(fā)安裝

*/

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);

立即登錄,閱讀全文
版權說明:
本文內容來自于小米開放平臺,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家