Panduan Integrasi Fungsi Android MA

Versi yang berlaku

Artikel ini berlaku untuk versi independen MA SDK 5.5.0 dan versi yang lebih baru.

Mulai dari 5.5.0, MA tidak lagi bergantung pada AppPush dan dapat diintegrasikan dan diinisialisasi secara mandiri. MA AppKey dan Push AppKey tidak bergantung satu sama lain dan bisa sama atau berbeda.

Untuk metode integrasi versi Fusion sebelum 5.5.0, silakan lihat Panduan Integrasi sebelum 5.5.0.

1. Impor SDK

Impor manual

Tambahkan mt-sdk-ma-5.5.0.aar dalam paket rilis ke direktori libs proyek aplikasi:

dependencies { implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs') }
              
              dependencies {
    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
}

            
Tampilkan blok kode ini di jendela mengambang

Impor Maven

dependencies { implementation 'com.engagelab.plugin:oth_ma:5.5.0' }
              
              dependencies {
    implementation 'com.engagelab.plugin:oth_ma:5.5.0'
}

            
Tampilkan blok kode ini di jendela mengambang

Jika Anda menggunakan AppPush secara bersamaan, ikuti dokumen AppPush untuk memperkenalkan paket utama engagelab; saat menggunakan MA saja, Anda tidak perlu memperkenalkan paket utama AppPush.

2. Konfigurasi izin

Deklarasikan izin jaringan di AndroidManifest.xml:

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

            
Tampilkan blok kode ini di jendela mengambang

MA versi mandiri tidak memerlukan konfigurasi ENGAGELAB_PRIVATES_APPKEY, ENGAGELAB_PRIVATES_CHANNEL, Push Service, atau Push Receiver. Jika Anda menggunakan AppPush secara bersamaan, Anda masih perlu menyelesaikan konfigurasi yang sesuai sesuai dengan dokumen integrasi AppPush.

3. Inisialisasi SDK

Disarankan untuk menginisialisasi dalam Application.onCreate() dari proses utama. MA AppKey digunakan untuk inisialisasi, dan tidak perlu menunggu inisialisasi AppPush atau registrasi berhasil.

import android.app.Application; import com.engagelab.privates.push.oth.ma.api.MTMAApi; import com.engagelab.privates.push.oth.ma.api.MTMAConfig; import com.engagelab.privates.push.oth.ma.api.MTMAInitResult; import com.engagelab.privates.push.oth.ma.api.MTMAInitResultCallback; public class MainApplication extends Application { @Override public void onCreate() { super.onCreate(); MTMAApi.configDebugMode(true); MTMAConfig config = new MTMAConfig("your MA AppKey"); MTMAApi.getInstance(this).start(config, new MTMAInitResultCallback() { @Override public void onResult(MTMAInitResult result) { if (result.isSuccess()) { String euid = result.getEuid(); String maRid = result.getMaRid(); } else { int code = result.getCode(); String message = result.getMessage(); } } }); } }
              
              import android.app.Application;

import com.engagelab.privates.push.oth.ma.api.MTMAApi;
import com.engagelab.privates.push.oth.ma.api.MTMAConfig;
import com.engagelab.privates.push.oth.ma.api.MTMAInitResult;
import com.engagelab.privates.push.oth.ma.api.MTMAInitResultCallback;

public class MainApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        MTMAApi.configDebugMode(true);
        MTMAConfig config = new MTMAConfig("your MA AppKey");
        MTMAApi.getInstance(this).start(config, new MTMAInitResultCallback() {
            @Override
            public void onResult(MTMAInitResult result) {
                if (result.isSuccess()) {
                    String euid = result.getEuid();
                    String maRid = result.getMaRid();
                } else {
                    int code = result.getCode();
                    String message = result.getMessage();
                }
            }
        });
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Petunjuk inisialisasi

  • MA AppKey diperlukan.
  • Android MA SDK hanya mendukung inisialisasi pada proses utama aplikasi host. Memanggil start dalam proses non-utama akan mengembalikan kegagalan melalui panggilan balik dan tidak ada permintaan jaringan yang akan dimulai.
  • Sebelum inisialisasi berhasil, API bisnis MA lainnya tidak tersedia kecuali untuk antarmuka konfigurasi pra-inisialisasi.
  • Direkomendasikan agar semua API eksternal MA dipanggil dalam proses utama. Proses non-utama tidak akan membagikan status inisialisasi proses utama, dan panggilan bisnis tidak akan diteruskan ke proses utama.
  • Setelah inisialisasi berhasil, nilai saat ini juga dapat diperoleh melalui getEuid() dan getMaRid().

Ganti MA AppKey saat runtime

Proses yang sama mendukung peralihan MA AppKey saat runtime. Silakan hubungi start lagi dengan AppKey baru setelah panggilan balik inisialisasi terakhir selesai.

MTMAConfig newConfig = new MTMAConfig("new MA AppKey"); MTMAApi.getInstance(this).start(newConfig, callback);
              
              MTMAConfig newConfig = new MTMAConfig("new MA AppKey");
MTMAApi.getInstance(this).start(newConfig, callback);

            
Tampilkan blok kode ini di jendela mengambang

Selama peralihan, API bisnis MA lainnya untuk sementara tidak tersedia; setelah AppKey baru berhasil diinisialisasi, kejadian berikutnya dan data pengguna menjadi milik AppKey baru. Jika AppKey baru gagal diinisialisasi, SDK tidak akan otomatis kembali ke AppKey lama, dan start perlu dipanggil lagi dengan AppKey yang valid.

Tetapkan ID pengguna selama inisialisasi

UserIdentity identity = new UserIdentity(); identity.setUserId("your user id"); identity.setAnonymousId("your anonymous id"); identity.setEmail("user@example.com"); identity.setPhone("+8613800138000"); MTMAConfig config = new MTMAConfig("your MA AppKey", identity); MTMAApi.getInstance(this).start(config, callback);
              
              UserIdentity identity = new UserIdentity();
identity.setUserId("your user id");
identity.setAnonymousId("your anonymous id");
identity.setEmail("user@example.com");
identity.setPhone("+8613800138000");

MTMAConfig config = new MTMAConfig("your MA AppKey", identity);
MTMAApi.getInstance(this).start(config, callback);

            
Tampilkan blok kode ini di jendela mengambang

Diantaranya, setEmail dan setPhone didukung mulai dari versi 5.5.0.

Aturan bidang identitas pengguna: setelah spasi di awal dan akhir dihapus, user_id tidak boleh kosong, panjangnya maksimal 255 karakter Unicode, dan tidak boleh sama dengan 0, null, undefined, atau nan (tanpa membedakan huruf besar/kecil). Setelah spasi dihapus, anonymous_id tidak boleh kosong dan panjangnya maksimal 256 karakter Unicode. email tidak boleh kosong, panjangnya maksimal 256 karakter Unicode, harus berisi tepat satu @ dengan isi yang tidak kosong di kedua sisinya, serta tidak boleh berisi spasi, baris baru, atau tab. phone harus menggunakan format E.164: diawali dengan +, kode negara diawali digit 1–9, lalu diikuti 1–14 digit. Jika validasi gagal, SDK tidak mengirim permintaan identitas dan mengembalikan code = -3 melalui callback.

4. Gunakan AppPush secara bersamaan

Saat mengonfigurasi sumber data seluler di konsol MA, silakan pilih untuk menggunakan AppPush secara bersamaan, dan pilih aplikasi AppPush yang benar-benar terhubung. Saat menginisialisasi AppPush, gunakan AppKey dari aplikasi yang dipilih.

MA dan AppPush diinisialisasi secara terpisah dan tidak memerlukan urutan tetap. Setelah AppPush berhasil didaftarkan dan Push RID diperoleh, MA SDK akan secara otomatis mengikat saluran AppPush.

AppPush tidak terintegrasi, belum terdaftar, atau pengikatan saluran gagal, yang tidak memengaruhi inisialisasi MA, pengumpulan peristiwa, dan pelaporan.

Catatan: MA RID dan AppPush RID adalah dua pengidentifikasi perangkat independen. Silakan dapatkan dan gunakan masing-masing melalui SDK yang sesuai, jangan gunakan salah satu sebagai yang lain.

5. Tetapkan ID kontak saluran

Jika Anda perlu mengatur ID kontak saluran untuk saluran Push pihak ketiga, silakan hubungi setelah MA berhasil diinisialisasi:

List<String> values = Collections.singletonList("push rid or token"); MTMAApi.getInstance(this).setChannelValue(136L, values, new CallBack() { @Override public void onCallBack(int code, String message) { // code == 0 means success } });
              
              List<String> values = Collections.singletonList("push rid or token");
MTMAApi.getInstance(this).setChannelValue(136L, values, new CallBack() {
    @Override
    public void onCallBack(int code, String message) {
        // code == 0 means success
    }
});

            
Tampilkan blok kode ini di jendela mengambang
  • channelId: ID saluran Push pihak ketiga yang dikonfigurasi pada konsol MA harus lebih besar dari 0.
  • values: Daftar nilai ID kontak saluran (seperti RID atau Token) tidak boleh kosong, dan elemen daftar tidak boleh kosong.
  • Setelah ID kontak saluran berubah, pembaruan antarmuka perlu dipanggil lagi.
  • Antarmuka ini digunakan untuk mengatur ID kontak saluran Push pihak ketiga; saluran AppPush secara otomatis terikat oleh SDK.

6. Petunjuk peningkatan versi lama

  • Setelah memutakhirkan ke 5.5.0, MA AppKey harus diteruskan secara eksplisit menggunakan MTMAConfig.
  • Tidak perlu lagi menunggu koneksi AppPush yang lama atau registrasi berhasil untuk menghubungi MA start.
  • start(CallBack) dan start(UserIdentity, CallBack) sudah usang, harap gunakan start(MTMAConfig, MTMAInitResultCallback) untuk versi mandiri.
  • Aplikasi yang awalnya menggunakan AppPush dan MA secara bersamaan dapat terus mengintegrasikan AppPush, namun harus diinisialisasi secara terpisah.
  • MA RID dan AppPush RID adalah dua pengidentifikasi perangkat independen. Silakan dapatkan dan gunakan masing-masing melalui SDK yang sesuai, jangan gunakan salah satu sebagai yang lain.

Untuk antarmuka bisnis lainnya, silakan lihat Panduan API.

Icon Solid Transparent White Qiyu
Hubungi Sales