接入 Android
本文介紹如何快速將數(shù)據(jù)同步組件接入到 Android 客戶端。
說明 自 2020 年 6 月 28 日起,mPaaS 停止維護 10.1.32 基線。請使用 10.1.68 或 10.1.60 系列基線??梢詤⒖?mPaaS 10.1.68 升級指南 或 mPaaS 10.1.60 升級指南 進行基線版本升級。 |
目前,數(shù)據(jù)同步組件支持 原生 AAR 接入 和 組件化接入 兩種接入方式。
接入過程分為兩步:
前置條件
您已接入工程到 mPaaS。
若采用原生 AAR 方式接入,需要先 將 mPaaS 添加到您的項目中。
若采用組件化方式接入,需要先完成 組件化接入流程。
添加 SDK
原生 AAR 方式
參考 AAR 組件管理,通過 組件管理(AAR) 在工程中安裝 同步服務(wù)(SYNC)組件。
組件化方式
在 Portal 和 Bundle 工程中通過 組件管理 安裝 同步服務(wù)(SYNC) 組件。
更多信息,請參考 管理組件依賴 > 增刪組件依賴。
使用 SDK
在 10.1.32 及以上版本基線中,mPaaS 中間層的 MPSync
類封裝了數(shù)據(jù)同步組件所有 API,通過調(diào)用 MPSync
對象即可實現(xiàn)數(shù)據(jù)同步的所有功能。
您可以通過下表快速了解數(shù)據(jù)同步的相關(guān) API。更多關(guān)于 API 的詳細信息,參見 Android 接口說明。
接口 | 接口說明 |
setup(Application application) | 用于初始化數(shù)據(jù)同步依賴的基礎(chǔ)服務(wù)。必須在 |
initialize(Context context) | 用于初始化接口和數(shù)據(jù)同步服務(wù)。 |
appToForeground() | 用于讓客戶端 SDK 感知到當前 App 已經(jīng)啟動,使其建立與服務(wù)器的網(wǎng)絡(luò)連接。每次 App 回前臺時調(diào)用。 |
appToBackground() | 用于讓客戶端 SDK 感知到當前 App 已經(jīng)回到后臺,使其斷開與服務(wù)器的網(wǎng)絡(luò)連接。每次 App 壓后臺時調(diào)用。 |
updateUserInfo(String sessionId) | 用于登錄信息 userId/sessionId 有變化時調(diào)用。至少調(diào)用一次。 |
clearUserInfo() | 用于用戶登出。 |
registerBiz(String bizType, ISyncCallback syncCallback) | 用于注冊一個接收業(yè)務(wù)數(shù)據(jù)的 |
unregisterBiz(String bizType) | 用于反注冊指定同步配置。在獲取到同步推送的數(shù)據(jù)后,客戶端 SDK 則不會回調(diào) |
reportMsgReceived(SyncMessage syncMessag) | 用于在 |
isConnected() | 用于檢查當前數(shù)據(jù)同步服務(wù)是否正常。 |
代碼示例
該示例通過在 10.1.32 基線版本 SDK 進行開發(fā)。在示例應(yīng)用中設(shè)置了一個按鈕,通過點按按鈕動作獲取設(shè)備 ID,再根據(jù)設(shè)備 ID,在控制臺采用指定設(shè)備推送的方式向設(shè)備推送同步數(shù)據(jù)。在示例中,同步標識為bizType
。
該示例僅用于演示調(diào)用數(shù)據(jù)同步 API 的方法,并不能作為數(shù)據(jù)同步的最佳實踐。您可以在 獲取代碼示例 頁面中下載數(shù)據(jù)同步組件的最佳實踐代碼。
public void button1Clicked(View view)
{
//使用 getUtdid 方法獲取設(shè)備 ID。
String utdid =UTDevice.getUtdid(MainActivity.this);
//在 Logcat 打印數(shù)據(jù)同步數(shù)據(jù)。
Log.e("=========",utdid);
//初始化接口和數(shù)據(jù)同步服務(wù)。
MPSync.initialize(MainActivity.this);
//注冊接收業(yè)務(wù)數(shù)據(jù)的 callback。在獲取到同步推送的數(shù)據(jù)后,回調(diào) syncCallback。
MPSync.registerBiz("bizType",new SyncCallBackImpl());
//建立與服務(wù)器的網(wǎng)絡(luò)連接。
MPSync.appToForeground();
}
public class SyncCallBackImpl implements ISyncCallback
{
@Override
public void onReceiveMessage(SyncMessage syncMessage) {
//在 Logcat 打印數(shù)據(jù)同步數(shù)據(jù)。
Log.e("=========",syncMessage.msgData);
//通知數(shù)據(jù)同步服務(wù)端接收同步數(shù)據(jù)成功。
MPSync.reportMsgReceived(syncMessage);
}
}