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.