Bagikan melalui


API Android lainnya

Penting

Visual Studio App Center dijadwalkan untuk dihentikan pada 31 Maret 2025. Meskipun Anda dapat terus menggunakan Visual Studio App Center hingga sepenuhnya dihentikan, ada beberapa alternatif yang direkomendasikan yang dapat Anda pertimbangkan untuk bermigrasi.

Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.

Menyesuaikan tingkat log

Anda dapat mengontrol jumlah pesan log berdasarkan App Center yang muncul di LogCat. AppCenter.setLogLevel() Gunakan API untuk mengaktifkan pengelogan tambahan saat men-debug. Tingkat log sesuai dengan yang ditentukan dalam android.util.Log. Secara default, ini diatur ke untuk ASSERT aplikasi yang tidak dapat di-debug dan WARN untuk aplikasi yang dapat di-debug. Anda dapat mengatur tingkat log kapan saja Anda inginkan.

Untuk memiliki pesan log sebanyak mungkin, gunakan Log.Verbose.

AppCenter.setLogLevel(Log.VERBOSE);
AppCenter.setLogLevel(Log.VERBOSE)

Mengidentifikasi penginstalan

App Center SDK membuat UUID untuk setiap perangkat setelah aplikasi diinstal. Pengidentifikasi ini tetap sama untuk perangkat saat aplikasi diperbarui dan yang baru dibuat hanya saat aplikasi diinstal ulang atau pengguna menghapus semua data aplikasi secara manual. API berikut berguna untuk tujuan penelusuran kesalahan.

AppCenter.getInstallId();
AppCenter.getInstallId()

API ini asinkron, Anda dapat membaca lebih lanjut tentang itu di panduan API Asinkron App Center kami.

Catatan

Metode ini hanya boleh digunakan setelah AppCenter dimulai, metode ini akan selalu kembali null sebelum dimulai.

Mengidentifikasi pengguna

App Center SDK mendukung pengaturan ID pengguna yang digunakan untuk menambah laporan crash. Untuk menggunakan kapabilitas ini:

  1. Konfigurasikan App Center SDK dengan memanggil AppCenter.start(...) seperti yang dijelaskan dalam panduan Memulai App Center SDK.
  2. Atur userID di SDK menggunakan kode berikut:
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")

Setelah mengatur ID pengguna, Anda dapat menggunakan fitur pencarian App Center untuk mencari laporan crash tertentu untuk ID tersebut. Pelajari selengkapnya di dokumentasi pencarian App Center.

Catatan

Nilai untuk ID pengguna dibatasi hingga 256 karakter. Ini akan ditampilkan dengan laporan crash Anda tetapi tidak digunakan untuk agregasi atau jumlah pengguna yang terpengaruh. Jika Anda mengatur ID pengguna beberapa kali, hanya ID pengguna terakhir yang akan digunakan. Anda perlu mengatur ID pengguna sendiri sebelum setiap peluncuran aplikasi, karena nilai ini tidak disimpan oleh SDK di antara peluncuran.

Menonaktifkan semua layanan saat runtime

Jika Anda ingin menonaktifkan semua layanan App Center sekaligus, gunakan setEnabled() API. Saat dinonaktifkan, SDK tidak akan meneruskan informasi apa pun ke App Center.

AppCenter.setEnabled(false);
AppCenter.setEnabled(false)

Untuk mengaktifkan semua layanan sekaligus, gunakan API yang sama tetapi lewati true sebagai parameter.

AppCenter.setEnabled(true);
AppCenter.setEnabled(true)

Status ini bertahan di penyimpanan perangkat di seluruh peluncuran aplikasi.

API ini asinkron, Anda dapat membaca lebih lanjut tentang itu di panduan API Asinkron App Center kami.

Catatan

Metode ini hanya boleh digunakan setelah AppCenter dimulai.

Melarang permintaan jaringan

Di App Center SDK, permintaan jaringan diizinkan secara default. Jika Anda ingin mengirim data yang dikumpulkan oleh App Center SDK oleh masalah pengguna, Anda dapat melarang pengiriman data otomatis.

AppCenter.setNetworkRequestsAllowed(false);
AppCenter.setNetworkRequestsAllowed(false)

Dalam hal ini, App Center SDK terus mengumpulkan data tetapi hanya akan dikirim ketika permintaan jaringan akan diizinkan.

AppCenter.setNetworkRequestsAllowed(true);
AppCenter.setNetworkRequestsAllowed(true)

Catatan

Nilai ini dipertahankan di antara awal.

Kapan saja, Anda dapat memeriksa apakah mengirim data di App Center SDK diizinkan atau tidak.

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

Catatan

Nilai yang disimpan sebelumnya di SharedPreferences diabaikan hingga AppCenter dimulai. Ini akan mengembalikan kumpulan nilai terakhir menggunakan setNetworkRequestsAllowed atau true jika nilai tidak diubah sebelum AppCenter dimulai.

Mengubah status layanan dalam runtime

Aktifkan atau nonaktifkan layanan pada runtime dengan kode berikut:

Analytics.setEnabled(false);
Analytics.setEnabled(false)

Catatan

Metode ini hanya boleh digunakan setelah Analytics dimulai.

Periksa apakah App Center diaktifkan

Anda juga dapat memeriksa apakah App Center diaktifkan atau tidak.

AppCenter.isEnabled();
AppCenter.isEnabled()

API ini asinkron, Anda dapat membaca lebih lanjut tentang itu di panduan API Asinkron App Center kami.

Catatan

Metode ini hanya boleh digunakan setelah AppCenter dimulai, metode ini akan selalu kembali false sebelum dimulai.

Periksa versi SDK App Center saat runtime

Anda bisa mendapatkan versi App Center SDK yang saat ini Anda gunakan.

AppCenter.getSdkVersion();
AppCenter.getSdkVersion()

Ukuran penyimpanan

Saat menggunakan App Center SDK, log disimpan secara lokal di perangkat. Log besar dapat memakan banyak ruang, sehingga Anda dapat memilih untuk membatasi ukuran database lokal. Ini juga berguna bersama dengan pause API dan resume . Jika Anda berharap untuk dijeda untuk waktu yang lama, Anda dapat menggunakan ukuran database yang lebih besar untuk menyimpan lebih banyak peristiwa.

Anda dapat menggunakan setMaxStorageSize API untuk mengatur ukuran DB lokal. API bersifat asinkron, dan panggilan balik dipanggil saat Anda memulai layanan App Center. Untuk alasan ini, setMaxStorageSize harus dipanggil sebelum panggilan Anda ke AppCenter.start(...). Anda hanya dapat memanggil API sekali.

// Use 20 MB for storage.
AppCenter.setMaxStorageSize(20 * 1024 * 1024L).thenAccept(new AppCenterConsumer<Boolean>() {

    @Override
    public void accept(Boolean success) {
        // The success parameter is false when the size can't be honored.
    }
});
AppCenter.start("{Your App Secret}", Analytics.class);
// Use 20 MB for storage.
AppCenter.setMaxStorageSize(20 * 1024 * 1024).thenAccept {
    // The success parameter (it) is false when the size can't be honored.
}

AppCenter.start(application, "{Your App Secret}", Analytics::class.java)

Jika Anda tidak mengatur ukuran penyimpanan maksimum, SDK menggunakan ukuran maksimum default 10 MB. Ukuran minimum yang diizinkan untuk Anda tetapkan adalah 20 KB.

Catatan

Ukuran penyimpanan maks aktual mungkin lebih tinggi dari nilai yang Anda pilih. SQLite membulatkan ukuran hingga ke kelipatan ukuran halaman berikutnya. App Center SDK menggunakan ukuran halaman 4 KB.

Catatan

Log yang lebih lama dari 25 hari akan dibuang.

Menambahkan penyimpanan distribusi

Secara default pembaruan dalam aplikasi berfungsi untuk aplikasi yang diinstal dari daftar penyimpanan yang ditentukan. Jika Anda ingin mendistribusikan aplikasi Anda melalui toko yang tidak disertakan dalam daftar toko yang telah ditentukan sebelumnya, maka Anda dapat menambahkan penginstal paket yang diperlukan menggunakan API di bawah ini sebelum App Center dimulai:

    Set<String> stores = new HashSet<String>();
    stores.add("com.store1.packageinstaller");
    stores.add("com.store2.packageinstaller");
    Distribute.addStores(stores);

Catatan

Jangan tambahkan toko seperti Google Play untuk menghindari batasan apa pun.

Panggilan API yang gagal

Ada banyak alasan panggilan balik mungkin gagal.

  • Ukuran yang ditentukan adalah nilai yang tidak valid (kurang dari 20KB atau lebih besar dari 140 TB).
  • Ukuran database saat ini lebih besar dari ukuran maksimum yang ditentukan.
  • API telah dipanggil. Anda dapat mengonfigurasinya hanya sekali per proses.
  • API telah dipanggil setelah AppCenter.start(...).

Anda dapat memeriksa peringatan dan kesalahan di konsol menggunakan AppCenter tag log untuk memecahkan masalah konfigurasi.

API Asinkron di Android SDK

API asinkron mengembalikan AppCenterFuture objek alih-alih mengembalikan hasilnya secara langsung.

Anda dapat memanggil get() objek di masa mendatang untuk secara sinkron menunggu hasilnya atau memberikan panggilan balik seperti ini, mengisi jenis pengembalian masing-masing saat memanggil API:

AppCenterFuture<{ReturnType}> future = {AnyAsyncApi}();
future.thenAccept(new AppCenterConsumer<{ReturnType}>() {

    @Override
    public void accept({ReturnType} result) {

        // do something with result, this is called back in UI thread.
    }
});
val future = {AnyAsyncApi}()
future.thenAccept(object : AppCenterConsumer<{ReturnType}> {
    override fun accept(t: {ReturnType}?) {
        // do something with result, this is called back in UI thread.
    }
})

Untuk menghindari pemblokiran utas UI yang menyebabkan perlambatan aplikasi Anda, pertimbangkan untuk menggunakan thenAccept dengan panggilan balik sepanjang waktu.

Pada utas pekerja Anda dapat memanggil {AnyAsyncApi}().get().

Contoh panggilan balik:

AppCenter.isEnabled().thenAccept(new AppCenterConsumer<Boolean>() {

    @Override
    public void accept(Boolean enabled) {
        Log.d("MyApp", "AppCenter.isEnabled=" + enabled);
    }
});
AppCenter.isEnabled().thenAccept { enabled -> 
    Log.d("MyApp", "AppCenter.isEnabled=$enabled")
}

Contoh sinkron:

boolean enabled = AppCenter.isEnabled().get();
val enabled = AppCenter.isEnabled().get()