Çit kaydı

Bir çitin durumu değiştiğinde uygulamanız PendingIntent tarafından geri çağrılır. Uygulamanız, her çitin kullanılabilmesi için çiti kaydettirmelidir.

Ç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.

Çit kaydetmek ve çit kaydını kaldırmak için aşağıdakiler gereklidir:

  • Bir Google Play Services API istemcisi örneği.
  • Çitin kendisi olan bir AwarenessFence örneği.
  • Durum değişikliklerini işlemek için bir PendingIntent.
  • Çitin kimliğini tanımlayan ve bir AwarenessFence-PendingIntent çiftiyle eşlenen bir dize olan çit anahtarı.

Aşağıdaki kod örneğinde, çit kaydetmek için updateFences()'ü ç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() birden çok kez çağırın. İhtiyacınız olduğu kadar PendingIntent yöntemi kullanabilirsiniz ancak tüm çit geri çağırmalarında tek bir PendingIntent kullanılması tercih edilir. addFence() çağrısı yapmak için önceden kaydedilmiş bir çit anahtarı kullanırsanız söz konusu anahtar için AwarenessFence ve PendingIntent değerlerinin üzerine yazılır.

Çit kaydını iptal etme

Bir çitin kaydını iptal etmek için getFenceClient().updateFences() numarasını arayın ve çit güncelleme isteği oluşturmak için FenceUpdateRequest.Builder() işlevini kullanın. Ardından, aşağıdaki örnekte gösterildiği gibi removeFence() işlevini çağırı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 çağırmalarını yönetme.