Çit kaydı

Uygulamanız, bir çitin durumu her değiştiğinde PendingIntent tarafından geri çağırma alır. Uygulamanızın kullanılabilmesi için her çiti kaydetmesi gerekir.

Çit kaydetme

Çit kaydetmek için FenceClient, FenceUpdateRequest oluşturmak için FenceClient.updateFences() simgesini kullanın. Eklenecek her çit için addFence() numaralı telefonu arayın.

Bir çiti kaydetmek ve kaydını silmek için aşağıdakiler gereklidir:

  • Google Play Hizmetleri API İstemcisi örneği.
  • Çitin kendisi olan bir AwarenessFence örneği.
  • Durum değişikliklerini işlemek için PendingIntent.
  • Çiti tanımlayan ve bir AwarenessFence-PendingIntent çiftiyle eşlenen bir dize olan çit anahtarı.

Aşağıdaki kod örneğinde, bir çiti kaydetmek için updateFences() işlevini çağıran bir yöntem gösterilmektedir:

    Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
        .addFence(FENCE_KEY, exercisingWithHeadphonesFence, mPendingIntent)
        .build())
        .addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                Log.i(TAG, "Fence was successfully registered.");
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.e(TAG, "Fence could not be registered: " + e);
            }
        });

Benzersiz çit anahtarlarına sahip birden fazla çit oluşturmak için addFence() işlevini birden çok kez çağırın. İhtiyacınız olduğu kadar PendingIntent yöntemi kullanabilirsiniz ancak tüm çit geri aramaları için tek bir PendingIntent kullanmanız önerilir. addFence() işlevini çağırmak için daha önce kaydedilmiş bir çit anahtarı kullanırsanız bu anahtar için AwarenessFence ve PendingIntent değerlerinin üzerine yazılır.

Çit kaydını iptal etme

Bir çiti kayıttan kaldırmak için getFenceClient().updateFences() numaralı telefonu arayın ve FenceUpdateRequest.Builder() kullanarak bir çit güncelleme isteği oluşturun. Ardından, aşağıdaki örnekte gösterildiği gibi removeFence() numaralı telefonu arayın:

 Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
     .removeFence(FENCE_KEY)
     .build())
     .addOnSuccessListener(new OnSuccessListener<Void>() {
         @Override
         public void onSuccess(Void aVoid) {
             Log.i(TAG, "Fence was successfully unregistered.");
         }
     })
     .addOnFailureListener(new OnFailureListener() {
         @Override
         public void onFailure(@NonNull Exception e) {
             Log.e(TAG, "Fence could not be unregistered: " + e);
         }
     });

Sonraki adım: Çit geri aramalarını yönetin.