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.