Aracılığıyla paylaş


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.Logtanı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:

  1. 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.
  2. 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 pauseresume 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()