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:
- Konfigurasikan App Center SDK dengan memanggil
AppCenter.start(...)
seperti yang dijelaskan dalam panduan Memulai App Center SDK. - 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()