全部產品
Search
文件中心

Mobile Platform as a Service:接入 Android

更新時間:Jul 13, 2024

本文介紹如何快速將資料同步組件接入到 Android 用戶端。

說明

自 2020 年 6 月 28 日起,mPaaS 停止維護 10.1.32 基準。請使用 10.1.6810.1.60 系列基準。可以參考 mPaaS 10.1.68 升級指南mPaaS 10.1.60 升級指南 進行基準版本升級。

目前,資料同步組件支援 原生 AAR 接入 組件化接入 兩種接入方式。

接入過程分為兩步:

  1. 添加 SDK

  2. 使用 SDK

前置條件

您已接入工程到 mPaaS。

添加 SDK

原生 AAR 方式

參考 AAR 組件管理,通過 組件管理(AAR) 在工程中安裝 同步服務(SYNC)組件。

組件化方式

在 Portal 和 Bundle 工程中通過 組件管理 安裝 同步服務(SYNC) 組件。

更多資訊,請參考 管理組件依賴 > 增刪組件依賴

使用 SDK

在 10.1.32 及以上版本基準中,mPaaS 中介層的 MPSync 類封裝了資料同步組件所有 API,通過調用 MPSync 對象即可實現資料同步的所有功能。

您可以通過下錶快速瞭解資料同步的相關 API。更多關於 API 的詳細資料,參見 Android 介面說明

介面

介面說明

setup(Application application)

用於初始化資料同步依賴的基礎服務。必須在 initialize 方法調用前調用。僅限 10.1.60 及以上版本基準。

initialize(Context context)

用於初始化介面和資料同步服務。

appToForeground()

用於讓用戶端 SDK 感知到當前 App 已經啟動,使其建立與伺服器的網路連接。每次 App 回前台時調用。

appToBackground()

用於讓用戶端 SDK 感知到當前 App 已經回到後台,使其斷開與伺服器的網路連接。每次 App 壓後台時調用。

updateUserInfo(String sessionId)

用於登入資訊 userId/sessionId 有變化時調用。至少調用一次。

clearUserInfo()

用於使用者登出。

registerBiz(String bizType, ISyncCallback syncCallback)

用於註冊一個接收業務資料的 callback。在擷取到同步推送的資料後,用戶端 SDK 會回調 syncCallback 實作類別。

unregisterBiz(String bizType)

用於反註冊指定同步配置。在擷取到同步推送的資料後,用戶端 SDK 則不會回調 syncCallback 實作類別。

reportMsgReceived(SyncMessage syncMessag)

用於在 syncCallback 實作類別中收到資料後,調用該介面通知數據同步服務端接收同步資料成功。在沒有收到 reportMsgReceived 前,資料同步會重試投遞,重試 6 次之後資料會被永久刪除。

isConnected()

用於檢查當前資料同步服務是否正常。

程式碼範例

該樣本通過在 10.1.32 基準版本 SDK 進行開發。在樣本應用中設定了一個按鈕,通過點按按鈕動作擷取裝置識別碼,再根據裝置識別碼,在控制台採用指定裝置推送的方式向裝置推送同步資料。在樣本中,同步標識為bizType

說明

該樣本僅用於示範調用資料同步 API 的方法,並不能作為資料同步的最佳實務。您可以在 擷取程式碼範例 頁面中下載資料同步組件的最佳實務代碼。

    public void button1Clicked(View view)
    {
        //使用 getUtdid 方法擷取裝置識別碼。
        String utdid =UTDevice.getUtdid(MainActivity.this);
        //在 Logcat 列印資料同步資料。
        Log.e("=========",utdid);
        //初始化介面和資料同步服務。
        MPSync.initialize(MainActivity.this);
        //註冊接收業務資料的 callback。在擷取到同步推送的資料後,回調 syncCallback。
        MPSync.registerBiz("bizType",new SyncCallBackImpl());
        //建立與伺服器的網路連接。
        MPSync.appToForeground();

    }

    public class SyncCallBackImpl implements ISyncCallback
    {
        @Override
        public void onReceiveMessage(SyncMessage syncMessage) {
            //在 Logcat 列印資料同步資料。
            Log.e("=========",syncMessage.msgData);
            //通知數據同步服務端接收同步資料成功。
            MPSync.reportMsgReceived(syncMessage);
        }
    }

後續操作

接入服務端