Diğer Android API'leri

Önemli

Visual Studio App Center, 30 Haziran 2026'ya kadar desteklenmeye devam edecek Analiz ve Tanılama özellikleri dışında 31 Mart 2025'te kullanımdan kaldırılmıştır. Daha fazla bilgi edinin.

Kayıt düzeyini ayarla

LogCat'te görünen günlük iletilerinin miktarını App Center'a göre denetleyebilirsiniz. Hata ayıklama sırasında ek günlüğe kaydetmeyi etkinleştirmek için AppCenter.setLogLevel() API'yi kullanın. Günlük düzeyleri android.util.Logtanımlananlarla karşılık gelir. Varsayılan olarak, hata ayıklanamayan uygulamalar için ASSERT, hata ayıklanabilir uygulamalar için WARN olarak ayarlanır. Kayıt seviyesini istediğiniz zaman ayarlayabilirsiniz.

Mümkün olduğunca çok günlük iletisine sahip olmak için Log.Verbose'ü kullanın.

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

Yüklemeleri tanımlama

Uygulama yüklendikten sonra App Center SDK'sı her cihaz için bir UUID oluşturur. Bu tanımlayıcı, uygulama güncelleştirildiğinde cihaz için aynı kalır ve yalnızca uygulama yeniden yüklendiğinde veya kullanıcı tüm uygulama verilerini el ile sildiğinde yeni bir tanımlayıcı oluşturulur. Aşağıdaki API hata ayıklama amacıyla kullanışlıdır.

AppCenter.getInstallId();
AppCenter.getInstallId()

Bu API zaman uyumsuzdur. Bu konuda daha fazla bilgiyi App Center Zaman Uyumsuz API'ler kılavuzumuzdan okuyabilirsiniz.

Uyarı

Yöntem yalnızca AppCenter başlatıldıktan sonra kullanılmalıdır, null her zaman başlamadan önce dönecektir.

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ı, AppCenter.start(...) açıklandığı gibi çağırarak 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")

Bir kullanıcı kimliği ayarladıktan sonra, belirli bir kullanıcı kimliği için belirli kilitlenme raporlarını aramak amacıyla App Center'ın arama özelliğini kullanabilirsiniz. App Center'ın arama belgelerinde daha fazla bilgi edinin.

Uyarı

Kullanıcı kimliği değeri 256 karakterle sınırlıdır. Çökme raporlarınızla birlikte gösterilecektir, ancak etkilenen kullanıcıların toplu istatistikleri veya sayıları için kullanılmayacaktır. 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 bir kez daha 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ı olur.

Bu API zaman uyumsuzdur. Bu konuda daha fazla bilgiyi App Center Zaman Uyumsuz API'ler kılavuzumuzdan okuyabilirsiniz.

Uyarı

AppCenter başlatıldıktan sonra bu yöntem yalnızca 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ı onayı ile topladığı verileri göndermek istiyorsanız, otomatik veri gönderimini devre dışı bırakabilirsiniz.

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)

Uyarı

Bu değer, başlangıçlar arasında tutulur.

İstediğiniz zaman App Center SDK'sında veri göndermeye izin verilip verilmeyeceğini de kontrol edebilirsiniz.

AppCenter.isNetworkRequestsAllowed();
AppCenter.isNetworkRequestsAllowed()

Uyarı

SharedPreferences içinde önceden kaydedilen değer, AppCenter başlatılana kadar görmezden gelinir. AppCenter başlamadan önce değer değiştirilmediyse, setNetworkRequestsAllowed veya true kullanılarak belirlenen son değeri döndürür.

Çalışma zamanında hizmetin durumunu değiştirme

Aşağıdaki kodla çalışma zamanında hizmetleri etkinleştirin veya devre dışı bırakın:

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

Uyarı

Analytics başlatıldıktan sonra bu yöntem yalnızca 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. Bu konuda daha fazla bilgiyi App Center Zaman Uyumsuz API'ler kılavuzumuzdan okuyabilirsiniz.

Uyarı

Yöntem yalnızca AppCenter başlatıldıktan sonra kullanılmalıdır, false her zaman başlamadan önce dönecektir.

Ç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. Ayrıca pause ve resume API'leriyle birlikte kullanıldığında da faydalıdır. Uzun süre duraklatılmanızı bekliyorsanız, daha fazla olay depolamak için daha büyük bir veritabanı boyutu kullanabilirsiniz.

Yerel veritabanı boyutunu ayarlamak için API'yi kullanabilirsiniz setMaxStorageSize . API asenkron çalışır ve App Center hizmetlerini başlattığınızda geri çağırma işlevi çağrılır. Bu nedenle, setMaxStorageSize çağrınızdan önce AppCenter.start(...) çağrılmalıdır. 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 maksimum boyut olan 10 MB'ı kullanır. Ayarlamanıza izin verilen en düşük boyut 20 KB'tır.

Uyarı

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.

Uyarı

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 mağazalar 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);

Uyarı

Herhangi bir kısıtlamayı önlemek için Google Play gibi mağazalar 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ıldı.

Yapılandırma sorunlarını gidermek için AppCenter günlük etiketini kullanarak konsoldaki uyarıları ve hataları da 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 UI iş parçacığının engellenmesini önlemek için, her zaman geri çağırma ile thenAccept kullanmayı göz önünde bulundurmalısınız.

Bir işçi dizisinde {AnyAsyncApi}().get() fonksiyonunu çağırabilirsiniz.

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()