Çitin durumu her değiştiğinde uygulamanız 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() 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.
Çitin kaydını silme
Bir çiti kayıttan çıkarmak için getFenceClient().updateFences() işlevini çağırın ve çit güncelleme isteği oluşturmak için FenceUpdateRequest.Builder() 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: Sınır geri aramalarını yönetin.