Diğer Android API'leri
Önemli
Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırılıyor. Tamamen kullanımdan kaldırılana kadar Visual Studio App Center'ı kullanmaya devam edebilirsiniz ancak geçiş yapmayı düşünebileceğiniz birkaç önerilen alternatif vardır.
Destek zaman çizelgeleri ve alternatifleri hakkında daha fazla bilgi edinin.
Günlük düzeyini ayarlama
LogCat'te görünen günlük iletilerinin miktarını App Center'a göre denetleyebilirsiniz. Hata ayıklama sırasında AppCenter.setLogLevel()
ek günlüğe kaydetmeyi etkinleştirmek için API'yi kullanın. Günlük düzeyleri içinde android.util.Log
tanımlanan düzeylere karşılık gelir. Varsayılan olarak, hata ayıklanamayan uygulamalar ve WARN
hata ayıklanabilir uygulamalar için olarak ayarlanırASSERT
. Günlük düzeyini istediğiniz zaman ayarlayabilirsiniz.
Mümkün olduğunca çok günlük iletisine sahip olmak için kullanın Log.Verbose
.
AppCenter.setLogLevel(Log.VERBOSE);
AppCenter.setLogLevel(Log.VERBOSE)
Yüklemeleri tanımlama
App Center SDK'sı, uygulama yüklendikten sonra her cihaz için bir UUID oluşturur. Bu tanımlayıcı, uygulama güncelleştirildiğinde ve yeni bir tanımlayıcı yalnızca uygulama yeniden yüklendiğinde veya kullanıcı tüm uygulama verilerini el ile sildiğinde cihaz için aynı kalır. Aşağıdaki API hata ayıklama amacıyla yararlıdır.
AppCenter.getInstallId();
AppCenter.getInstallId()
Bu API zaman uyumsuzdur, App Center Zaman Uyumsuz API'ler kılavuzumuzda bu konuda daha fazla bilgi edinebilirsiniz.
Not
Bu yöntem yalnızca başlatıldıktan sonra AppCenter
kullanılmalıdır, her zaman başlamadan önce döndürülecektir null
.
Kullanıcıları tanımlama
App Center SDK'sı, kilitlenme raporlarını artırmak için kullanılan bir kullanıcı kimliği ayarlamayı destekler. Bu özelliği kullanmak için:
- App Center SDK'sını, App Center SDK'sını Kullanmaya başlama kılavuzunda açıklandığı gibi çağırarak
AppCenter.start(...)
yapılandırın. - Aşağıdaki kodu kullanarak SDK'da bir
userID
ayarlayın:
AppCenter.setUserId("your-user-id");
AppCenter.setUserId("your-user-id")
Kullanıcı kimliğini ayarladıktan sonra App Center'ın arama özelliğini kullanarak kimliğin belirli kilitlenme raporlarını arayabilirsiniz. App Center'ın arama belgelerinde daha fazla bilgi edinin.
Not
Kullanıcı kimliği değeri 256 karakterle sınırlıdır. Kilitlenme raporlarınızla birlikte gösterilir, ancak toplama veya etkilenen kullanıcıların sayısı için kullanılmaz. Kullanıcı kimliğini birden çok kez ayarlarsanız, yalnızca son kullanıcı kimliği kullanılır. Bu değer başlatmalar arasında SDK tarafından depolanmadığından, her uygulama başlatılmadan önce kullanıcı kimliğini kendiniz ayarlamanız gerekir.
Çalışma zamanında tüm hizmetleri devre dışı bırakma
Tüm App Center hizmetlerini aynı anda devre dışı bırakmak istiyorsanız API'yi setEnabled()
kullanın. Sdk devre dışı bırakıldığında App Center'a hiçbir bilgi iletmez.
AppCenter.setEnabled(false);
AppCenter.setEnabled(false)
Tüm hizmetleri aynı anda etkinleştirmek için aynı API'yi kullanın ancak parametre olarak geçirin true
.
AppCenter.setEnabled(true);
AppCenter.setEnabled(true)
Durum, uygulama başlatmaları arasında cihazın depolama alanında kalıcı hale geldi.
Bu API zaman uyumsuzdur, App Center Zaman Uyumsuz API'ler kılavuzumuzda bu konuda daha fazla bilgi edinebilirsiniz.
Not
Bu yöntem yalnızca başlatıldıktan sonra AppCenter
kullanılmalıdır.
Ağ isteklerine izin verme
App Center SDK'sında ağ isteklerine varsayılan olarak izin verilir. App Center SDK'sının kullanıcı tarafından topladığı verileri göndermek istiyorsanız otomatik veri göndermeye izin verilmiyebilirsiniz.
AppCenter.setNetworkRequestsAllowed(false);
AppCenter.setNetworkRequestsAllowed(false)
Bu durumda App Center SDK'sı veri toplamaya devam eder ancak yalnızca ağ isteklerine izin verildiğinde gönderilir.
AppCenter.setNetworkRequestsAllowed(true);
AppCenter.setNetworkRequestsAllowed(true)
Not
Bu değer başlangıçlar arasında korunur.
İstediğiniz zaman App Center SDK'sında veri göndermeye izin verilip verilmeyeceğini de kontrol edebilirsiniz.
AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()
Not
Daha önce içinde SharedPreferences
kaydedilen değer başlatılana kadar AppCenter
yoksayılır.
Değerin AppCenter başlamadan önce değiştirilmediği veya true
kullanılarak setNetworkRequestsAllowed
ayarlanan son değeri döndürür.
Çalışma zamanında hizmetin durumunu değiştirme
Çalışma zamanında aşağıdaki kodla hizmetleri etkinleştirin veya devre dışı bırakın:
Analytics.setEnabled(false);
Analytics.setEnabled(false)
Not
Bu yöntem yalnızca başlatıldıktan sonra Analytics
kullanılmalıdır.
App Center'ın etkin olup olmadığını denetleyin
App Center'ın etkinleştirilip etkinleştirilmediğini de de de kontrol edebilirsiniz.
AppCenter.isEnabled();
AppCenter.isEnabled()
Bu API zaman uyumsuzdur, App Center Zaman Uyumsuz API'ler kılavuzumuzda bu konuda daha fazla bilgi edinebilirsiniz.
Not
Bu yöntem yalnızca başlatıldıktan sonra AppCenter
kullanılmalıdır, her zaman başlamadan önce döndürülecektir false
.
Çalışma zamanında App Center SDK sürümünü denetleme
Şu anda kullanmakta olduğunuz App Center SDK sürümünü alabilirsiniz.
AppCenter.getSdkVersion();
AppCenter.getSdkVersion()
Depolama boyutu
App Center SDK'sını kullanırken günlükler cihazda yerel olarak depolanır. Büyük günlükler çok fazla yer kaplayabilir, bu nedenle yerel veritabanının boyutunu sınırlamayı seçebilirsiniz. Ve API'leri ile pause
resume
birlikte de kullanışlıdır. Uzun süre duraklatılmayı bekliyorsanız, daha fazla olay depolamak için daha büyük bir veritabanı boyutu kullanabilirsiniz.
API'yi setMaxStorageSize
kullanarak yerel veritabanı boyutunu ayarlayabilirsiniz. API zaman uyumsuzdur ve App Center hizmetlerini başlattığınızda geri arama çağrılır. Bu nedenle çağrısı setMaxStorageSize
yapmadan önce çağrılmalıdır AppCenter.start(...)
. API'yi yalnızca bir kez çağırabilirsiniz.
// 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)
Maksimum depolama boyutunu ayarlamazsanız SDK varsayılan en yüksek 10 MB boyutu kullanır. Ayarlamanıza izin verilen en düşük boyut 20 KB'tır.
Not
Gerçek maksimum depolama boyutu seçtiğiniz değerden daha yüksek olabilir. SQLite, boyutu sayfa boyutunun sonraki katına yuvarlar. App Center SDK'sı 4 KB sayfa boyutu kullanır.
Not
25 günden eski günlükler atılır.
Dağıtım depoları ekleme
Varsayılan olarak uygulama içi güncelleştirmeler, tanımlı mağaza listesinden yüklenen uygulamalar için çalışır. Uygulamanızı önceden tanımlanmış mağaza listesine dahil olmayan depolar aracılığıyla dağıtmak istiyorsanız, App Center başlamadan önce aşağıdaki API'yi kullanarak gerekli paket yükleyicisini ekleyebilirsiniz:
Set<String> stores = new HashSet<String>();
stores.add("com.store1.packageinstaller");
stores.add("com.store2.packageinstaller");
Distribute.addStores(stores);
Not
Herhangi bir kısıtlamayı önlemek için Google Play gibi mağaza eklemeyin.
Başarısız API çağrıları
Geri çağırmanın başarısız olmasının birçok nedeni vardır.
- Belirtilen boyut geçersiz bir değer (20 KB'tan küçük veya 140 TB'tan büyük).
- Geçerli veritabanı boyutu belirtilen en büyük boyuttan büyük.
- API zaten çağrıldı. İşlem başına yalnızca bir kez yapılandırabilirsiniz.
- API' den sonra
AppCenter.start(...)
çağrılmıştır.
Yapılandırma sorunlarını gidermek için günlük etiketini kullanarak AppCenter
konsoldaki uyarıları ve hataları de kontrol edebilirsiniz.
Android SDK'sında zaman uyumsuz API'ler
Zaman uyumsuz API'ler sonucu doğrudan döndürmek yerine bir AppCenterFuture
nesne döndürür.
Sonucu zaman uyumlu bir şekilde beklemek için gelecekteki nesneyi çağırabilir get()
veya API'yi çağırırken ilgili dönüş türlerini doldurarak bunun gibi bir geri çağırma sağlayabilirsiniz:
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.
}
})
Uygulamanızı yavaşlatmaya neden olan kullanıcı arabirimi iş parçacığını engellemek için, her zaman geri arama ile kullanmayı thenAccept
göz önünde bulundurun.
Bir çalışan iş parçacığında çağrısı {AnyAsyncApi}().get()
yapabilirsiniz.
Geri çağırma örneği:
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")
}
Zaman uyumlu örnek:
boolean enabled = AppCenter.isEnabled().get();
val enabled = AppCenter.isEnabled().get()