Çit kaydı

Bir çitin durumu değiştiğinde uygulamanız PendingIntent tarihine kadar geri aranma alır. Uygulamanız kullanılabilmesi için her çiti kaydetmelidir.

Bir çit kaydedin

Çit kaydetmek için FenceClient kullanın ve FenceUpdateRequest oluşturmak için FenceClient.updateFences() özelliğini kullanın. Eklenecek her çit için addFence() numaralı telefonu arayın.

Bir çiti kaydettirmek ve kaydını iptal etmek için aşağıdakiler gereklidir:

  • Google Play Services API Client örneği.
  • Bir çit olan AwarenessFence örneği.
  • Durum değişikliklerini işlemek için bir PendingIntent.
  • Bir çiti, çiti tanımlayan ve bir AwarenessFence-PendingIntent çiftiyle eşleyen bir dizedir.

Aşağıdaki kod örneğinde, çit kaydı için updateFences() yöntemini ç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ıyla birden çok çit oluşturmak için addFence() öğesini birden çok kez çağırın. İstediğiniz kadar PendingIntent yöntemi kullanabilirsiniz ancak tüm çit geri çağırmaları için tek bir PendingIntent yöntemi kullanmanız tercih edilir. addFence() işlevini çağırmak için önceden kaydedilmiş bir çit anahtarı kullanıyorsanız bu 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() aracını kullanın. Aşağıdaki örnekte gösterildiği gibi removeFence() yöntemini ç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.